我正在Eclipse中编写一个小的Maven应用程序。我将一些属性文件和我的应用程序上下文存储在目录src / main / resources中。
我现在想让Eclipse在目录src / test / resources中使用属性。因此,当我在Eclipse中运行和调试程序时,应该使用这些测试属性。
你知道我怎么能做到这一点吗?
答案 0 :(得分:9)
试试这个:
答案 1 :(得分:5)
是否在类路径上使用Maven Eclipse Plugin或m2eclipse,src/test/resources
位于src/main/resources
之前(更准确地说,是它们的输出目录)。换句话说,没有什么可做的,事情就像在命令行上一样。
答案 2 :(得分:3)
使用测试覆盖(例如testOverrides.xml):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- this file need to be imported before other contexts to ensure the test properties take effect -->
<context:property-placeholder location="classpath*:META-INF/spring/testproperties/*.properties"/>
</beans>
在测试中,请确保先导入:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:META-INF/spring/testOverrides.xml","classpath*:META-INF/spring/applicationContext.xml"})
public class SomeTest { ... }
现在将所有测试属性放在src/test/resources/META-INF/spring/testproperties/
。
您还必须确保main
占位符配置器看不到testproperties
,例如这是我的:
<context:property-placeholder location="classpath*:META-INF/spring/*.properties"/>
它不使用双*通配符,因此只会查看该目录。
我使用上述方法取得了巨大成功。
答案 3 :(得分:0)