如何在 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
我正在使用 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