TestNG的优先事项

时间:2014-03-18 08:48:14

标签: java selenium testng

我希望我的测试用例优先执行,但所有依赖于'Method1'的测试用例都是先执行,所以我的其他测试用例都失败了。

@Test(dependsOnMethods = {"verifyLogin"}, priority = 0, description = "verify a page access")

  public void Method1() 

@Test(dependsOnMethods = {“Method1”},priority = 1,description =“verify b page access”)

  public void Method2() 

@Test(dependsOnMethods = {"Method1"}, priority = 2, description = "verify c page access")

  public void Method3()

@Test(dependsOnMethods = {"Method3"}, priority = 3, description = "verify d page access")

  public void Method4()

 @Test(dependsOnMethods = {"Method1"}, priority = 4, description = "verify e page access")

  public void Method5()

所以方法1,2,3和5首先执行,但我希望方法4在5之前执行,因为它依赖于方法3。

感谢。

1 个答案:

答案 0 :(得分:0)

我在框架测试类中遇到了类似的问题。通常,如果我们在测试类中使用dependsOnMethodspriority,则testng首先执行优先级测试,但不对具有dependsOnMethods的测试应用优先级。使用'dependsOnMethod'属性的测试将根据其依赖项/优先级在最后运行。测试用例执行顺序如下:

  1. 根据优先级不依赖的测试用例。
  2. 依赖于依赖的测试方法和优先级的测试用例。
  3. 因此,在您的情况下,它将首先执行依赖于'method1'的测试用例,而不是依赖于'method3'的测试用例。要解决此问题,您需要了解基于prioritiesdependsOnMethods执行测试的顺序。您必须相应地调整这两个属性。您还可以根据多种测试方法创建一个测试用例,例如在您的情况下,您可以使测试用例4依赖于'method1'以及'method3'。