当我尝试执行下面的代码时,我对测试方法 E 和 A 的顺序感到困惑。
我的输出顺序是C->D->E->A->B
public class Example5
{
@Test
public void A()
{
System.out.println("A");
}
@Test(dependsOnGroups={"MM"})
public void B()
{
System.out.println("B");
}
@Test(groups={"MM"})
public void C()
{
System.out.println("C");
}
@Test(groups={"MM"})
public void D()
{
System.out.println("D");
}
@Test
public void E()
{
System.out.println("E");
}
}
从输出中,我可以看到测试方法C和D在B方法之前执行(我可以理解),但我不明白的是E和A方法的顺序。
请解释 TestNG 如何遵循此代码中的顺序
最佳答案
<suite name="Suite-A">
<test name="test">
<classes >
<class name="stack1.LoginTest"></class>
<methods>
<include name="A" />
<include name="E" />
<include name="B" />
<include name="C" />
<include name="D" />
</methods>
</classes>
</test>
</suite>
使用此套件来运行类中明确提到的方法。您可以看到输出为 A > E > C > D > B
。
我想这就是您所期望看到的。
如果您想在代码中设置顺序,您可以在您的方法中使用@Test(priority = 1)
。较低优先级将首先被安排。因此,例如 -2 将在 1 之前执行。
如果您想保留多个类的顺序,请在 testng.xml 套件中使用 group-by-instances="true"
。
Related Stackoverflow Links:
- Priority in TestNG with multiple classes
- Order of execution of tests in TestNG
- Run TestNG tests in random order
Cedric's Blog:
http://beust.com/weblog/2008/03/29/test-method-priorities-in-testng/TestNG document:
http://testng.org/doc/documentation-main.html
关于java - dependentOnGroups 顺序-Testng,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31333237/