dependsOnGroups连续顺序-Testng

时间:2015-07-10 05:38:11

标签: java selenium selenium-webdriver testng

当我尝试执行以下代码时,我对测试方法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如何遵循此代码中的连续顺序

1 个答案:

答案 0 :(得分:2)

<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"

  

相关的Stackoverflow链接:

           

Cedric's博客:
  http://beust.com/weblog/2008/03/29/test-method-priorities-in-testng/

     

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