【发布时间】:2011-03-10 21:34:48
【问题描述】:
我正在使用 Spring 2.5.6 并使用 Maven 2.2.1 构建我的项目。我们在 Spring 中使用 PropertyPlaceholderConfigurer bean 来加载用于配置数据库等内容的属性。很标准的东西。我们还有两组不同的测试:单元测试和集成测试。
我希望能够使用不同的属性文件来为两种不同类型的测试以不同的方式配置数据库 url 等内容。例如,我希望单元测试使用localhost 数据库,而集成测试使用mydatabase.example.com 数据库。
我尝试了几种变体,将属性文件放在单独的子目录中(一个用于单元测试,一个用于集成测试)。从那里开始,我尝试使用additionalClasspathElements 标记maven-failsafe-plugin,但这似乎根本不起作用。我尝试使用maven-antrun-plugin 将文件复制到target/classes,但是当我运行mvn verify -Dtest=sometest 时没有触发。
我还尝试在 maven 中使用 systemPropertyVariables 来设置一个名为 buildEnvironment 的属性,然后我尝试在我的 Spring bean 定义中引用它:
<property name="locations">
<value>classpath:${buildEnvironment}/my-test.properties</value>
</property>
但是 Spring 拒绝解析 ${buildEnvironment}。在这一点上,我没有想法。我确信有一种很好、直接的方法可以做到这一点,但我想不通。
任何建议将不胜感激。
【问题讨论】:
-
你有没有看到这个相关问题的不同答案stackoverflow.com/questions/3076466/…
-
我也无法让 PropertyPlaceholderConfigurer 查看添加了附加类路径元素的资源。有谁知道为什么这不起作用?
标签: java unit-testing spring maven-2 properties