说我有以下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()
方法吗?
答案 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()
将不会被执行。