我尝试使用以下抽象类在src / test / resources类路径中加载spring配置文件:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/applicationContext.xml"})
public class BaseIntegrationTests {
}
我在src / test / resources中有applicationContext.xml文件但是Spring无法加载它。
谢谢。
答案 0 :(得分:25)
准确地说,它是类路径上的测试输出目录(target/test-classes
)的内容,而不是src/test/resources
。但src/test/resources
下的资源会被resources:testResources
目标复制到测试输出目录(默认情况下绑定到 process-test-resources
相)。
话虽如此,您的代码看起来很好,测试源代码的资源应该由IDE或Maven在运行测试时复制,因此应该在类路径上可用。所以一定有别的错误。我可以看到你的类是集成测试的基类。你在pom中配置了什么花哨的东西吗?你能表现出来吗?
答案 1 :(得分:16)
尝试使用*以便它可以搜索到您的类路径
@ContextConfiguration(locations={"classpath*:applicationContext.xml"})
答案 2 :(得分:5)
有reported bug使用spring-test依赖项(包括SpringJUnit4ClassRunner)和JUnit版本> 4.4。
如果您使用的是比4.4更新的JUnit版本,请尝试将其降低到4.4并查看它是否能解决您的问题。
答案 3 :(得分:4)
您的应用程序上下文必须包含在类路径中并放入*:
@ContextConfiguration(locations = { "classpath:*/application-context.xml" })
答案 4 :(得分:1)
你似乎正在使用maven,并尝试在eclipse中运行测试。检查构建文件夹(target/test-classes/
)以查找applicationContext.xml
。如果它不在那里,你必须先建立。
答案 5 :(得分:0)
我想我有类似的问题, 我发现我的application-context.xml不在src / test / resources上的target / test-classes /上
答案 6 :(得分:0)
如果您正在使用Maven并从eclipse运行测试用例, 项目右键单击> Maven> maven update( ALT F5 )可能适合您。