【问题标题】:How to listen to Test Suite changes in order to change some configurations如何收听测试套件更改以更改某些配置
【发布时间】:2012-06-01 02:44:21
【问题描述】:
我有许多 Spring 测试类(使用 @RunWith(SpringJUnit4ClassRunner) 定义),我想将它们分组到测试套件中,以便为每个套件而不是每个测试类加载一次新配置。
现在我有一个 TestExecutionListener 监听器来监听每个将重新加载配置的 Spring 测试,但我想保存它,因为许多测试共享相同的配置。
遗憾的是,Spring 既不支持收听JUnit TestSuites,也不支持JUnit 支持TestSuites 的侦听器概念。
【问题讨论】:
标签:
java
junit
junit4
test-suite
spring-test
【解决方案1】:
如果您希望在 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