dependsOnGroups顺序顺序-测试



当我试图执行下面的代码时,我对测试方法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之前执行。

如果你想保持多个类的顺序,在test .xml套件中使用group-by-instances="true"


相关Stackoverflow链接:

  • 在多个类的TestNG中的优先级
  • TestNG中测试的执行顺序
  • 随机顺序运行TestNG测试

塞德里克的博客:
http://beust.com/weblog/2008/03/29/test-method-priorities-in-testng/

TestNG文档:
http://testng.org/doc/documentation-main.html

最新更新