是否有类似 Spring TestSuite 的 TestExecutionListener 之类的东西?

Is there anything like Spring TestExecutionListener for TestSuite?

目前我正在使用 TestExecutionListener 进行测试,它非常完美

public class ExecutionManager extends AbstractTestExecutionListener {

    @Override
    public void beforeTestClass(TestContext testContext) throws Exception {
        System.out.println("beforeClass");
    }

    @Override
    public void afterTestClass(TestContext testContext) throws Exception {
        System.out.println("afterClass");
    }
}

测试classes:

@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners(ExecutionManager.class)
public final class TC_001 {

    @Test
    public void test() {
        System.out.println("Test_001");
    }
}

@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners(ExecutionManager.class)
public final class TC_002 {

    @Test
    public void test() {
        System.out.println("Test_002");
    }
}

当我将这些测试包含在测试套件中时,每个测试都会执行 beforeTestClass(TestContext testContext)afterTestClass(TestContext testContext) 方法 class,这是合乎逻辑的:

@RunWith(Suite.class)
@Suite.SuiteClasses({
        TC_001.class,
        TC_002.class
})
public final class TS_001 {
}

是否有类似 SuiteExecutionListenerTestExecutionListener 套房)的东西?

基本上我需要非静态 @BeforeClass@AfterClass 套件

在 ExecutionListener 中,我需要找出 class 已启动的内容:案例或套件。为此,我可以:

但我不太喜欢这些解决方案。 SuiteExecutionListener 更可取

谢谢

不,不幸的是 Spring TestContext Framework (TCF) 中没有 SuiteExecutionListener 这样的东西。

TCF 未在套件级别与 JUnit 4 集成。

如果您想在 TestContext 中存储一些内容,那不是问题。 TestContext 实现 org.springframework.core.AttributeAccessor,因此您可以在 TestContext 中存储 属性 。但是请注意,给定 TestContext 的生命周期与测试 class.

相关联