当我执行我的testNG项目时,它混合了我基于优先级在同一<test>
下添加的不同类的所有测试。我该如何编码,以便在进入下一类之前,我需要按优先级顺序在第一类上运行所有方法?
<test name="test1">
<classes>
<class name="class1" />
<class name="class2" />
</classes>
</test>
编辑于16Dec2019:
这是我的示例代码:
第1类:
public class LearningTestNG extends masterClass
{
@Test
public void test()
{
System.out.println("Priority 0 (Default in Class 1)");
}
@Test(priority = 1)
public void test2()
{
System.out.println("Priority 1 (Class 1)");
}
@Test(priority = 0)
public void test3()
{
System.out.println("Priority 0 (Class 1)");
}
@Test(priority = 1)
public void atest4()
{
System.out.println("Priority 1 (Class 1)");
}
}
第2类:
public class LearningTestNGTest2 extends masterClass
{
@Test(priority = 0)
public void testin_LearningTestNGTest2_Class()
{
System.out.println("Priority 0 (Class 2)");
}
}
XML:
<classes>
<class name="testclasses.LearningTestNG" />
<class name="testclasses.LearningTestNGTest2" />
</classes>
输出:
[RemoteTestNG] detected TestNG version 6.12.0
Priority 0 (Default in Class 1)
Priority 0 (Class 1)
Priority 0 (Class 2)
Priority 1 (Class 1)
Priority 1 (Class 1)
===============================================
suiteNameGiveninXML
Total tests run: 5, Failures: 0, Skips: 0
===============================================
最佳答案
在class1中,如果在class1的@Test下使用priority = 1,然后使用2,然后是3,依此类推,则将首先执行优先级为1,2,3 ...的Test方法,然后将控件移至class2 class1以测试名称=“ test1”完成。