TestNG测试组的执行顺序

时间:2016-01-06 16:27:08

标签: java testing testng

说我有以下XML:

<suite name="MATS">
    <test name="mats_test">
    <groups>
        <run>
            <include name="mats" />
        </run>
    </groups>
    <packages>
        <package name="com.tests" />
    </packages>
    </test>
</suite>

com.tests包中的每个测试类只有一个带有不同组注释的测试方法。不会在“mats”组中执行类的beforeClass()afterClass()方法吗?

1 个答案:

答案 0 :(得分:1)

之前/之后不在指定组中的方法将无法运行,除非他们将alwaysRun设置为true

  

alwaysRun

     

对于before方法(beforeSuite,beforeTest,beforeTestClass和   beforeTestMethod,但不是beforeGroups):如果设置为true,则为此   无论它属于哪个组,都将运行配置方法   到。

     

对于after方法(afterSuite,afterClass,...):如果设置为true,则为此   即使调用了一个或多个方法,也将运行配置方法   以前失败或被跳过。

e.g。鉴于以下类别:

public class AMatsTest {
    @BeforeSuite(groups = {"mats"})
    public void beforeSuite() {}
}

public class NotAMatsTest {
    @BeforeSuite
    public void beforeSuite() {}
}

@Test(groups = {"mats"})
public class AnotherMatsTest {
    @BeforeSuite public void beforeSuite() {}
}

public class AlwaysTest {
    @BeforeSuite(alwaysRun = true)
    public void beforeSuite() {}
}

AMatsTest.beforeSuite()AnotherMatsTest.beforeSuite()AlwaysTest.beforeSuite()将被执行。 NotAMatsTest.beforeSuite()将不会被执行。