从Eclipse运行Spring JUnit测试时,将/ src / main / resources添加到Classpath

时间:2012-03-09 10:43:38

标签: eclipse spring unit-testing maven junit

有没有办法在Eclipse中获取JUnit测试(特别是我使用SpringJUnit4ClassRunner)来使用来自src/main/resourcessrc/test/resources的资源?

Maven的surefire插件可以做到这一点,但是从Eclipse运行一个特定的单元测试却没有。

我在src/main/resources/spring-config/中加载了一个Spring配置,我想'覆盖'两个特定的文件。我在src/test/resources/spring-config/中放置了这些特定于测试的覆盖,并且当通过Maven运行单元测试时,eveerything正常工作。当我从Eclipse运行JUnit测试时,测试文件可用,并且不出所料我的上下文无法加载。

更新

在使用通配符时,看起来配置测试上下文的Spring类无法从src/main/resources/找到资源,但如果我明确指定它们,找到它们。

找不到src/main/resources/

中的内容
@ContextConfiguration(locations = {"classpath:/spring-config/*.xml"})

src/main/resources/

查找指定的文件
@ContextConfiguration(locations = {"classpath:/spring-config/*.xml",
                                   "classpath:/spring-config/app-aws.xml"})

1 个答案:

答案 0 :(得分:7)

这实际上是Spring的限制,而不是JUnit。有关详细信息,请参阅http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/resources.html#resources-wildcards-in-path-other-stuff

解决方案是将Spring配置文件放在包中,而不是放在根包中。