有没有办法在Eclipse中获取JUnit测试(特别是我使用SpringJUnit4ClassRunner
)来使用来自src/main/resources
和src/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"})
答案 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配置文件放在包中,而不是放在根包中。