我有一些需要按顺序运行的测试,所以我将@Test(singleThreaded = true)添加到他们的类中。
工作正常,问题在于@Test在类级别,所有方法都是由TestNG执行的,即使他们没有@Test注释,所以最终这会导致我的团队成员想要浪费时间禁用测试,因为他不知道这种特殊性,他只评论@Test而不是整个方法,所以稍后这个应该被禁用的测试最终会使构建过程失败。
有没有办法避免这种情况?
由于
答案 0 :(得分:2)
一种方法是教育团队:)
您可以在要禁用的单个测试上添加新注释,即 在下面,测试2不会运行。
@Test(singlet..)
public class Testss {
public void test1(){
System.out.println("test1");
}
@Test(enabled=false)
public void test2(){
System.out.println("test2");
}
public void test3(){
System.out.println("test3");
}
}
答案 1 :(得分:2)
如果顺序执行测试很重要,我建议使用依赖项或优先级,而不是依赖于执行顺序和更改线程数。
@Test
public void method1() {
System.out.println("This is method 1");
}
@Test(dependsOnMethods = { "method1" })
public void method2() {
System.out.println("This is method 2");
}
或
@Test(priority = 1)
public void method1() {
System.out.println("This is method 1");
}
@Test(priority = 2)
public void method2() {
System.out.println("This is method 2");
}
与
结合使用@Test(enabled = false) //do not run this method as a test
和/或
<suite name="Suite" parallel="classes" thread-count="3">