我希望我的测试用例优先执行,但所有依赖于'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。
感谢。
答案 0 :(得分:0)
我在框架测试类中遇到了类似的问题。通常,如果我们在测试类中使用dependsOnMethods
或priority
,则testng首先执行优先级测试,但不对具有dependsOnMethods
的测试应用优先级。使用'dependsOnMethod'属性的测试将根据其依赖项/优先级在最后运行。测试用例执行顺序如下:
因此,在您的情况下,它将首先执行依赖于'method1'的测试用例,而不是依赖于'method3'的测试用例。要解决此问题,您需要了解基于priorities
和dependsOnMethods
执行测试的顺序。您必须相应地调整这两个属性。您还可以根据多种测试方法创建一个测试用例,例如在您的情况下,您可以使测试用例4依赖于'method1'以及'method3'。