Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有SpringJUnit4ClassRunner的Junit测试套件_Java_Spring_Junit_Spring Boot - Fatal编程技术网

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)

  • 这个设置有什么问题
  • 这是
    属性
    文件的本地化吗
  • 我可以用吗
  • 编辑 由以下原因造成的损失:

    原因:java.io.FileNotFoundException:类路径资源 无法打开[testApplication.properties],因为它未打开 存在


    但是,为什么找不到
    test/java/testApplication.properties
    中的位置?

    尝试解决此问题后,问题似乎是
    属性文件必须位于
    test/java/resources/testApplication.properties
    中。因此,答案是将属性文件放入
    resources
    目录。

    如果您使用intellij而不是eclipse,您将立即看到问题