26

我尝试使用以下抽象类在 src/test/resources 类路径中加载 spring 配置文件:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/applicationContext.xml"})
public class BaseIntegrationTests {

}

我在 src/test/resources 中有 applicationContext.xml 文件,但 spring 无法加载它。

谢谢你。

4

7 回答 7

26

准确地说,是类路径上的测试输出目录( ) 的内容,而不是. 但是目标(默认绑定到阶段)将其下的资源复制到测试输出目录。target/test-classessrc/test/resourcessrc/test/resourcesresources:testResourcesprocess-test-resources

话虽如此,您的代码看起来不错,并且测试源代码的资源应该在运行测试时由您的 IDE 或 Maven 复制,因此应该在类路径上可用。所以肯定有其他问题。我可以看到您的类是集成测试的基类。你有没有在你的 pom 中配置任何花哨的东西?你能展示一下吗?

于 2010-04-09T12:36:58.880 回答
16

尝试使用 * 以便它可以搜索到您的类路径

@ContextConfiguration(locations={"classpath*:applicationContext.xml"})
于 2013-07-04T16:27:43.613 回答
6

使用带有 JUnit > 4.4 版本的 spring-test 依赖项(包括 SpringJUnit4ClassRunner)存在一个已报告的错误。

如果您使用的 JUnit 版本高于 4.4,请尝试将其移至 4.4 并查看它是否能解决您的问题。

于 2010-05-21T19:30:54.883 回答
4

您的应用程序上下文必须包含在类路径中并放入 * :

@ContextConfiguration(locations = { "classpath:*/application-context.xml" })
于 2014-05-14T08:52:55.303 回答
2

您似乎正在使用 Maven,并尝试从 Eclipse 中运行测试。检查构建文件夹 ( target/test-classes/) 中的applicationContext.xml. 如果它不存在,则必须先构建。

于 2010-04-09T05:48:38.200 回答
0

我想我有一个类似的问题,我发现我的 application-context.xml 不在 src/test/resources 上的 target/test-classes/neighter

于 2010-11-15T19:28:15.610 回答
0

如果您使用 Maven 并从 eclipse 运行测试用例,项目右键单击 > Maven > maven update ( ALTF5) 可能对您有用。

于 2017-06-01T18:50:31.727 回答