Java 带有SpringJUnit4ClassRunner的Junit测试套件
我有一个测试套件:Java 带有SpringJUnit4ClassRunner的Junit测试套件,java,spring,junit,spring-boot,Java,Spring,Junit,Spring Boot,我有一个测试套件: @RunWith(Suite.class) @Suite.SuiteClasses({ A.class, B.class }) public class TestSuite { } A类: @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public class A { //nothing } B类: @RunWith(SpringJUnit4ClassRunner.class
@RunWith(Suite.class)
@Suite.SuiteClasses({
A.class,
B.class
})
public class TestSuite {
}
A类:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class A {
//nothing
}
B类:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
@TestPropertySource(value = "classpath:testApplication.properties")
public class B {
//nothing
}
现在问题在于@TestPropertySource
测试应用程序。properties位于test/java/testApplication.properties
下,A
和B
类位于test/java/com.example.MyApp
下。
如果我用@TestPropertySource
注释行,测试套件运行正常,但未注释时,我得到:
java.lang.IllegalStateException:未能加载ApplicationContext
在
org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
在
org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
在
org.springframework.boot.test.AutoConfigureReportTestExecutionListener.prepareTestInstance(AutoConfigureReportTestExecutionListener.java:49)
在
org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
在
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)位于
org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectCall(SpringJUnit4ClassRunner.java:287)
在
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
在
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
在
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
在
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
属性
文件的本地化吗但是,为什么找不到
test/java/testApplication.properties
中的位置?尝试解决此问题后,问题似乎是属性文件必须位于test/java/resources/testApplication.properties
中。因此,答案是将属性文件放入resources
目录。如果您使用intellij而不是eclipse,您将立即看到问题