Bu, testng.xml'deki sınıfları hariç tutmak mümkün mü? TestNG'de sınıf nasıl hariç tutulur?
Ben<packages>
<package exclude="com.tt.ee"/>
</packages>
ile denedik ama hatayı veriyor.
Bu, testng.xml'deki sınıfları hariç tutmak mümkün mü? TestNG'de sınıf nasıl hariç tutulur?
Ben<packages>
<package exclude="com.tt.ee"/>
</packages>
ile denedik ama hatayı veriyor.
Şöyle çalışması gerekir:
<packages>
<package name="packageName">
<exclude name="packageYouWantToExclude"></exclude>
</package>
</packages>
her iki 'name' özniteliğinde – user522170
paket adını vermem gerekiyorsa, çalıştırmak istediğiniz paketi ve çalıştırmak istemediğinizi vermeniz gerekir. – Tarken
TestNG dtd göre, exclude
eleman aşağıdaki unsurları için geçerlidir:
classes
ve class
öğeleri doğrudan dışarıda bırakılamaz; ancak, gruplar yoluyla sınıfları hariç tutabilirsiniz:
@Test(groups = { "ClassTest1" })
public class Test1 {
public void testMethod1() {
}
public void testMethod2() {
}
}
Sonra testng.xml tanımlayacaktır: koşuya dahil etmek sınıflar tanımlamak çoğu durumda,
<suite>
<test>
<groups>
<run>
<exclude name="ClassTest1"/>
</run>
</groups>
<classes>
<class name="Test1">
</classes>
</test>
</suite>
, dışlamak değil Yani sadece çalıştırmak istediğiniz sınıfları ekleyin.
Testng'yi testng.xml olsa da atlamak için doğrudan bir yol yoktur. Bununla birlikte, belirli test sınıfını görmezden gelmek için kullanılabilecek bir geçici çözüm vardır.
TestNG kullanıcı grubunda tartışılan aynı konu ama doğrudan cevap posta parçacığı bakın - Re: [TestNG-kullanıcılar] Sen classfilesetref kullanmak ve sınıfların listesini tanımlamak olabilir
TestNG bir sınıf Ignore koşmak istiyorsun.
<fileset id="test.classes" dir="${test.classes.dir}" casesensitive="yes">
<exclude name="**/ExcludeClass.java" />
</fileset>
<testng [...]>
<!-- your setting here -->
<classfilesetref refid="test.classes"/>
</testng>
doğru çalıştırmak istemiyorum testlerden sonra (groups = { "anyName"})
Ekle, bu yüzden şöyle görünür:
@Test(groups = { "group1"})
public void methodTestName(){..
}
Ve xml dosyasında daha eklemek hemen sonra test name="..."
<groups>
<run>
<exclude name="group1" />
</run>
</groups>
(groups = { "group1"})
ile yöntemler çalıştırılamaz. Bu yol benim için çalışıyor. 'un Sınıfı hariç tutabildiğini, yalnızca paketi, yöntemleri ve'un çalıştığını unutmayın. İyi şanslar
Aynı sorunu yaşadım!Bu durumda
<classes>
<class name="brms.impl.BrmsServicesFactoryTest" />
<!-- <class name="brms.impl.ServicesFactoryTest" /> -->
</classes>
, BrmsServicesFactoryTest testler yürütür tek sınıf, diğer sınıf testleri yürütülmez: Neyse, ben buldum çözüm paketlerinin yerine etiket sınıflarını kullanan bu benim testng.xml dosyasıdır!
Umarım bu size yardımcı olabilir!
Çözüm olarak, adı ile her test için sahte grupları ekleyebilirsiniz, açıklama transformatör üzerinden
public class TestNGAnnotationTransformer implements IAnnotationTransformer {
@Override
public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor, Method testMethod) {
if (testMethod == null || annotation == null) {
return;
}
String pseudoGroupClass = testMethod.getDeclaringClass().getSimpleName();
String pseudoGroupMethod = pseudoGroupClass + "." + testMethod.getName();
String[] existingGroups = annotation.getGroups();
String[] extendedGroups;
if (existingGroups == null) {
extendedGroups = new String[] { pseudoGroupClass, pseudoGroupMethod };
} else {
List<String> tmp = new ArrayList<String>();
for (String group : existingGroups) {
tmp.add(group);
}
tmp.add(pseudoGroupClass);
tmp.add(pseudoGroupMethod);
extendedGroups = tmp.toArray(new String[0]);
}
annotation.setGroups(extendedGroups);
}
}
test yöntemini veya test sınıfını eşittir ve testng.xml kullanmak
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="My tests">
<test name="tests" enabled="true">
<groups>
<run>
<include name="My Group"/>
<include name="MySuperClass"/>
<exclude name="MySuperClass.badMethod"/>
<exclude name="DontLikeThisClassAnymore"/>
</run>
</groups>
<packages>
<package name="com.mycompany.*"/>
</packages>
</test>
<listeners>
<listener class-name="com.mycompany.TestNGAnnotationTransformer"/>
</listeners>
</suite>
cevap burada - http://stackoverflow.com/questions/6209177/how-to-disable-entire-unit-test-in-testng –
@JayBose Hariç devre dışı bırakılması ile aynı değildir. Test dışlandığında, yine de farklı bir konfigürasyonda yürütülebilir. Herhangi bir yapılandırma için devre dışı bırakılmış test yürütülmez. – artdanil