Maven配置文件参数未在Spring JUnit上下文中加载

时间:2013-05-24 11:15:23

标签: spring maven junit

我正在使用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}

请问,请问这里有什么问题以及如何解决?

提前谢谢。

1 个答案:

答案 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的更多信息。