我在这里看到过类似的问题,但似乎都没有解决问题。 我有以下代码;
@Test(priority=2)
public void increaseQty(){
System.out.println("in increase qty");}
@Test(priority=2,dependsOnMethods={"increaseQty"})
public void decreaseQty(){
System.out.println("in decrease qty");}
@Test(priority=3)
public void removeFromCart() throws Exception{
System.out.println("remove qty");}
@Test(priority=3,dependsOnMethods={"removeFromCart"})
public void emptyCart() throws InterruptedException{
System.out.println("empty Cart");}
预期的运行顺序是
increaseQty
decreaseQty
removeFromCart
emptyCart
但实际顺序是
increaseQty
removeFromcart
decreaseQty
emptyCart
我无法理解为什么它不遵循指定的顺序。 在我看来,它首先是运行独立方法,然后是依赖,而不管优先级如何,但在文档中的任何地方都没有提到这种行为。我该怎么做才能让它以所需的顺序运行
答案 0 :(得分:4)
不提供优先级并依赖于一起,您可以对测试进行分组。 你可以这样做:
@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");
}
修改强> 另一个解决方法是将你的testng xml更改为具有以下内容的解释:
<methods>
<include name="increaseQty"/>
<include name="decreaseQty"/>
<include name="removeFromCart"/>
<include name="emptyCart"/>
</methods>
所以testng只会以这种方式执行它。