testleri yürütülürken sıralı günlükleri alınıyor.Bizim kodu için entegrasyon testleri yürütmek için <code>java</code> ile <code>testng</code> kullanıyoruz
public class TestExecutionListener implements IInvokedMethodListener {
@Override
public void beforeInvocation(IInvokedMethod iInvokedMethod, ITestResult iTestResult) {
System.out.println("Testing : " + iInvokedMethod.getTestMethod().getMethodName());
}
@Override
public void afterInvocation(IInvokedMethod iInvokedMethod, ITestResult iTestResult) {
System.out.println("Successfully Tested : " + iInvokedMethod.getTestMethod().getMethodName());
}
}
Bizim testng.xml olarak tanımlanır: - -:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestSuite" verbose="1" parallel="classes" thread-count="10">
<listeners>
<listener class-name="core.TestExecutionListener"/>
</listeners>
<test name="IntegrationTests">
<classes>
<class name="test.SomeTest1"/>
<class name="test.SomeTest2"/>
<class name="test.SomeTest3"/>
<class name="test.SomeTest4"/>
... There are more than 20 classes
</classes>
</test>
</suite>
biz testleri yürütmek gibi
, şöyle testi yürütülmesi için bir dinleyici uygulayan aşağıdaki gibi olsun çıktısı:Testing : SomeTest1Method1 Testing : SomeTest2Method2 Testing : SomeTest4Method5 Successfully Tested : SomeTest2Method2 Successfully Tested : SomeTest4Method5
ne olmasını çıkışını bekliyor olacak iken: -
Testing : SomeTest1Method1 Successfully Tested : SomeTest1Method1 Testing : SomeTest2Method2 Successfully Tested : SomeTest2Method2 Testing : SomeTest4Method5 Successfully Tested : SomeTest4Method5
false
değiştirmeyi beri, çünkü xml parallel="classes"
özelliğinin bu Tahmin istenen sağlar çıktı. Ancak, açıkça görüldüğü gibi, değiştirilmiş yürütme, paralel yürütme ile karşılaştırıldığında çok daha fazla zaman harcar.
Bu testleri paralel olarak çalıştırmanın bir yolu var mı, ancak yine de bu çıkışı sırayla alsın mı?
Günlüğü farklı kaydedicilerinin sonra çıktı? –
@PaulHicks - O lütfen ilgili daha fazla ipuçları. Farklı günlük kayıtlarına giriş yapamadım. – nullpointer
log4j gibi bir giriş programı kullanın. Testinize özel bir şey kullanarak bir logger alın (yeterli olacak IInvokedMethod arayüzü var; daha uygun bir şey olabilir).'System.out' yerine, oturum açın. İsteğe bağlı olarak, tüm kaydedicilerden okuyun ve 'System.out' ile birleştirin. –