java - Maven:运行测试时不会拾取配置文件属性
问题描述
在 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>
并且serverBaseUrl
在文件 application-email.xml 中被引用:
<bean id="MailService" class="someclass">
<property name="aurl" value="${serverBaseUrl}"/>
</bean>
我希望在运行测试、使用 IntelliJ IDEA 或使用 Maven 测试时,可以自动从 pom.xml 中获取 ${serverBaseUrl}。但是,它不像我期望的那样工作。
当不运行测试时,事情完全符合我的预期。
这里有什么问题?默认情况下运行测试时,maven 或 IntelliJ IDEA 是否不会获取配置文件属性?运行测试时如何获取配置文件的属性?
目前,我有一个解决方法:serverBaseUrl=xxx
在 config.properties 中定义并获取该属性。这有点难看,我想避免。
解决方案
这更像是在黑暗中拍摄,我无法测试它。
在您的部分添加resources
标签:build
pom.xml
<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
推荐阅读
- swift - 在 Swift 协议中使用泛型方法
- windows - 在 Windows 10 上无法从 Ubuntu 16.04 接收 UDP 数据包
- apache-kafka - 如何在 Apache Kafka 中查看主题属性
- ffmpeg - FFMPEG:如何从 mpd 清单中手动选择视频质量?
- python - 将多列组合成一列熊猫
- python - GCP 云函数配置文件
- android - Firebase 不工作 com.google.firebase.installations.FirebaseInstallationsException
- python - 这个语法在python中执行什么功能
- android - 有没有办法知道哪个活动将应用程序重定向到这个活动?
- c# - 如何在不使用 Automapper 映射的情况下分配新变量