在pom.xml中,我定义了一个属性:
<profile>
<id>local</id>
<properties>
<build.profile.id>local</build.profile.id>
<serverBaseUrl>http://127.0.0.1:8080</serverBaseUrl>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
文件application-email.xml:中引用了serverBaseUrl
<bean id="MailService" class="someclass">
<property name="aurl" value="${serverBaseUrl}"/>
</bean>
我希望,在运行测试时,使用IntelliJ IDEA或使用Maven测试时,可以自动从pom.xml中提取${serverBaseUrl}。然而,它并不像我所期望的那样工作。
当不运行测试时,它的工作方式正是我所期望的。
这里出了什么问题?默认情况下,maven或IntelliJ IDEA在运行测试时不会拾取配置文件属性吗?运行测试时,如何获取配置文件的属性?
目前,我有一个解决方法:在config.properties中定义serverBaseUrl=xxx
,然后获取该属性。这有点难看,我想避免。
这更像是在黑暗中拍摄,我无法测试它。
在pom.xml
:的build
部分添加resources
标签
<build>
.....
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
<includes>
<include>application-email.xml</include>
</includes>
</testResource>
</testResources>
....
</build>
我想你的application-email.xml
在src/test/resources
文件夹里。