我正在使用Maven配置文件运行JUnit测试。
Maven个人资料看起来如此:
<profile>
<id>someProfile</id>
<properties>
...
<some.param>some_value</some.param>
...
</properties>
</profile>
Spring上下文文件( testContext.xml ):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
...
xmlns:p="http://www.springframework.org/schema/p"
...
xsi:schemaLocation="...">
<bean id="someBean" class="someClass"
scope="singleton"
autowire="byName"
init-method="init"
p:someBeanParam="${some.param}"/>
</beans>
测试课开始如此:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:/testContext.xml"})
@Configurable
...
运行maven之后,我看到testContext.xml没有被更改 - p:someBeanParam 仍然具有值 $ {some.param} 。
请问,请问这里有什么问题以及如何解决?
提前谢谢。
答案 0 :(得分:1)
启用此类资源过滤
<project>
...
<build>
...
<resources>
...
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
...
</resources>
<testResources>
...
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
...
</testResources>
...
</build>
....
为每个配置文件定义变量,并且不使用配置文件。
有关Maven Resource Plugin page的更多信息。