我有许多 Spring Test 类(使用 定义@RunWith(SpringJUnit4ClassRunner)
),我想将它们分组到测试套件中,以便为每个套件而不是每个测试类加载一次新配置。
现在我TestExecutionListener
对每个 Spring 测试都有一个监听器,它将重新加载配置,但我想保存它,因为许多测试共享相同的配置。
遗憾的是,Spring既不支持监听JUnit TestSuite
s,也不JUnit
支持 s 的监听器概念TestSuite
。
我有许多 Spring Test 类(使用 定义@RunWith(SpringJUnit4ClassRunner)
),我想将它们分组到测试套件中,以便为每个套件而不是每个测试类加载一次新配置。
现在我TestExecutionListener
对每个 Spring 测试都有一个监听器,它将重新加载配置,但我想保存它,因为许多测试共享相同的配置。
遗憾的是,Spring既不支持监听JUnit TestSuite
s,也不JUnit
支持 s 的监听器概念TestSuite
。
如果您希望在 junit 测试套件之前/之后执行操作,您可以使用@BeforeClass和@AfterClass,甚至是@ClassRule。您可以在那里为整个套件进行设置。使用以下示例:
@RunWith(Suite.class)
@SuiteClasses({ ExpectedFailureTest.class, RetryTest.class })
public class BeforeClassSuite {
@BeforeClass
public static void beforeClass() {
System.out.println("beforeClass");
}
@AfterClass
public static void afterClass() {
System.out.println("afterClass");
}
@ClassRule
public static ExternalResource resource = new ExternalResource() {
@Override
protected void before() throws Throwable {
System.out.println("before");
};
@Override
protected void after() {
System.out.println("after");
};
};
}
这产生作为输出:
before
beforeClass
... output from tests
afterClass
after