testNG测试用例执行特定顺序以及从特定测试用例开始的能力

时间:2012-07-28 13:23:26

标签: automated-tests testng

如何以特定顺序执行testNG测试用例,以及从特定测试用例开始执行的能力。

例如。如果您运行以下套件

@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");
}
}

执行测试用例的顺序将始终为test1,test2,test3。但有时候我想从test2开始执行而不是从test1开始执行,即我想运行test2,然后运行test3而不运行test1。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:0)

您可以使用IAnnotationTransformerenabled的{​​{1}}属性转换为@Test。但是,您还必须调整依赖项。

我认为将这个逻辑放在你自己的测试方法中可能更简单(如果某个条件为真,那就什么也不做,而不是运行测试及其断言)。

答案 1 :(得分:0)

我的建议是将测试添加到组中,然后通过指定<group>使用testng.xml从外部控制行为,如果您需要进一步的帮助,请告诉我。

答案 2 :(得分:0)

简单的想法是将优先级设置为不同的测试;请记住,priority = 0的默认值。

this.NavigationController?.NavigationBar.ShadowImage

因此执行顺序为t0 - &gt; t1 - &gt; t2 - &gt; T3。 t0首先执行,因为默认情况下它的优先级设置为0。

希望这有帮助。