0

如何使 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。我怎样才能做到这一点?

4

3 回答 3

0

我的建议是将您的测试添加到组中,然后使用 testng.xml 从外部控制行为,方法是指定<group>让我知道您是否需要进一步的帮助。

于 2014-12-12T08:18:22.310 回答
0

您可以使用IAnnotationTransformer将 的enabled属性@Test转换为 的false。但是,您还必须调整依赖关系。

我认为将这个逻辑放入您的测试方法本身可能更简单(如果某个条件为真,则什么都不做,而不是运行测试及其断言)。

于 2012-07-28T20:30:45.167 回答
0

简单的想法是为不同的测试设置优先级;请记住,优先级的默认值 = 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。

希望这可以帮助。

于 2018-03-28T05:51:51.057 回答