测试用例执行的TestNG顺序,优先级为

时间:2016-09-05 12:20:54

标签: java selenium testng

以下是TestNG测试用例类中的测试方法:

@Test (priority=0)
public void test01() {
}
@Test (priority=1, dependsOnMethods="test01")
public void test02() {
}
@Test (priority=2)
public void test03() {
}
@Test (priority=3)
public void test04() {
}

执行顺序为test01 - test03 - test04 - test02。 这似乎是不正确的,因为到达test02时,依赖测试方法test01已经执行。因此test02应立即执行。我觉得正确的顺序是test01 - test02 - test03 - test04

这是TestNG中的错误,还是因为某些特殊原因导致我失踪?

2 个答案:

答案 0 :(得分:0)

不要提供优先级并依赖于一起,您可以对测试进行分组。你可以这样做:

@Test(priority = 1, groups = { "qty" })
public void increaseQty() {
    System.out.println("in increase qty");
}

@Test(dependsOnMethods = { "increaseQty" }, groups = { "qty" })
public void decreaseQty() {
    System.out.println("in decrease qty");
}

@Test(dependsOnGroups = { "qty" })
public void removeFromCart() throws Exception {
    System.out.println("remove qty");
}

@Test(dependsOnMethods = { "removeFromCart" })
public void emptyCart() throws InterruptedException {
    System.out.println("empty Cart");
}

答案 1 :(得分:-1)

它是TestNG已知问题:https://github.com/cbeust/testng/issues/474

修复程序将在下一个版本中提供(可能是6.9.14):https://github.com/cbeust/testng/pull/1158