Automated tests testNG以特定的顺序执行testcase,并能够从特定的testcase开始
如何以特定的顺序执行testNG testcase,以及如何从特定的testcase开始执行 例如,如果您运行下面的套件Automated tests testNG以特定的顺序执行testcase,并能够从特定的testcase开始,automated-tests,testng,Automated Tests,Testng,如何以特定的顺序执行testNG testcase,以及如何从特定的testcase开始执行 例如,如果您运行下面的套件 @Test public class Test1 { @Test public void test1() { System.out.println("test1"); } @Test(dependsOnMethod = "test1") public void test2() { System.out.println("test2"); } @Test(d
@Test
public class Test1 {
@Test
public void test1() {
System.out.println("test1");
}
@Test(dependsOnMethod = "test1")
public void test2() {
System.out.println("test2");
}
@Test(dependsOnMethod = "test2")
public void test3() {
System.out.println("test3");
}
}
testcases的执行顺序始终是test1、test2、test3。但是有时候我想从test2而不是test1开始执行,也就是说,我想先运行test2,然后再运行test3,而不运行test1。如何实现这一点?您可以使用一个
IAnnotationTransformer
,它将@Test
的enabled
属性设置为false
。但是,您还必须调整依赖关系
我认为将此逻辑放在测试方法中可能更简单(如果某个条件为真,只需不执行任何操作,而不是运行测试及其断言).我的建议是将您的测试添加到组中,然后通过指定
让我知道您是否需要进一步的帮助来使用testng.xml从外部控制行为。简单的想法是设置不同测试的优先级;请记住,优先级的默认值为0
@Test(priority=1)
public void t1(){}
@Test
public void t0(){}
@Test(priority=2)
public void t2(){}
@Test(priority=3)
public void t3(){}
因此,执行顺序将是t0->t1->t2->t3。
t0首先执行,因为其优先级默认设置为0
希望这有帮助