有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java dependsOnGroups顺序orderTestng

当我试图执行下面的代码时,我对测试方法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) 个答案

  1. # 1 楼答案

    <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中使用group-by-instances="true"。xml套件


    Related Stackoverflow Links:

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

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