我有一个testng.xml文件,我有三个类,所有三个类的测试优先级都从1到4(@Test(priority = 1到4))。在运行它时,来自不同类的优先级为1的测试会首先运行并影响我的测试流程。我可以使用哪种testng注释来避免这种情况?
@Test(priority=1)
在多个类别中给出
答案 0 :(得分:0)
使用保留顺序
<test name="Test" preserve-order="true">
因此,在testng.xml中指定的所有类将以指定的顺序运行,然后在每个类中,方法将按照优先级运行。
答案 1 :(得分:0)
在testng中,如果您在这些类中的测试中设置了优先级,则在testng.xml中提到的类的顺序无关紧要。测试将根据优先级运行(priority = 1测试将首先运行,然后priority = 2继续运行)。
要解决上述问题,您需要从类内部的测试中删除优先级,然后按照要执行这些类的顺序将这些类放入testng中,并将<preserve-order="true">
放入testng xml中。
如果您还想按特定顺序在类内运行测试,则可以在类内提到的测试之间使用dependsOnMethods
,例如:
@Test(dependsOnMethods = {"parentTest"})
public void childTest() {
}
@Test
public void parentTest() {
}
在上述情况下,当仅通过parentTest()时,将执行childTest()。