如何在 spring boot starter 测试中应用两个 @RunWith

How to apply two @RunWith in spring boot starter test

我正在使用 spring 引导启动程序测试来编写 JUnit 测试用例。我喜欢使用 JunitParamrunner,它有助于为参数化 test.Basically 传递文件,它逐行从文件中读取数据,并为每一行调用一个测试用例。问题是同时使用我需要通过 SpringJUnit4ClassRunner 和 JUnitParamsRunner 传递@RunWith。 我不知道该怎么做。谁能提供一些线索。

您可以尝试使用 SpringClassRule 而不是 @RunWith 注释来实现 spring 集成。

Spring@wjans 提到的 ClassRule 如果是最好的解决方案,但是如果你的 Spring 版本低于 4.2(最新的 spring-boot-starter-test 取决于 spring版本4.1.7),可以在测试构造函数中初始化上下文:

@ContextConfiguration(<your context location>)
@RunWith(JUnitParamsRunner.class)
public class ParameterizedTestWithSpring {

    private TestContextManager testContextManager;

    public ParametrizedTestWithSpring() throws Exception {
        this.testContextManager = new TestContextManager(getClass());
        this.testContextManager.prepareTestInstance(this);
    }

    // your test methods