Java 如何在spring boot starter测试中应用两个@RunWith
我使用SpringBootStarter测试来编写JUnit测试用例。我很想使用JunitParamrunner,它有助于为参数化测试传递文件。基本上,它逐行从文件中读取数据,并为每一行调用一个测试用例。问题是使用SpringJUnit4ClassRunner和JUnitParamsRunner都需要通过@RunWith。Java 如何在spring boot starter测试中应用两个@RunWith,java,spring-boot,junit4,parameterized-tests,junitparams,Java,Spring Boot,Junit4,Parameterized Tests,Junitparams,我使用SpringBootStarter测试来编写JUnit测试用例。我很想使用JunitParamrunner,它有助于为参数化测试传递文件。基本上,它逐行从文件中读取数据,并为每一行调用一个测试用例。问题是使用SpringJUnit4ClassRunner和JUnitParamsRunner都需要通过@RunWith。 我不知道该怎么做。任何人都可以提供一些线索。您可以尝试通过使用而不是@RunWith注释来实现spring集成 如果@wjans提到的SpringClassRule是最佳解决
我不知道该怎么做。任何人都可以提供一些线索。您可以尝试通过使用而不是
@RunWith
注释来实现spring集成 如果@wjans提到的SpringClassRule是最佳解决方案,但如果您的Spring版本低于4.2(最新的Spring启动测试取决于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
@ContextConfiguration()
@RunWith(JUnitParamsRunner.class)
使用spring参数化测试的公共类{
私有TestContextManager TestContextManager;
公共参数setTestWithSpring()引发异常{
this.testContextManager=新的testContextManager(getClass());
this.testContextManager.prepareTestInstance(this);
}
//你的测试方法