我遇到了 Quarkus 配置文件在测试执行期间无法按预期运行的问题。具体来说,当使用命令 mvn failuresafe:integration-test -Pit -Dquarkus.profile=it 运行测试时,应用程序似乎忽略了 application-it.properties 中指定的属性,而是使用 application.properties 中的属性。
这是我的项目结构的简化版本:
project-root
|-- src
|-- main
|-- resources
|-- application.properties
|-- application-it.properties
|-- test
|-- java
|-- resources
|-- application-it.propertie
在我的 pom.xml 中,我设置了故障安全插件和配置文件,如下所示:
<profile>
<id>it</id>
<properties>
<quarkus.profile>it</quarkus.profile>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<skipTests>false</skipTests>
<includes>
<include>**/*IT.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
我使用下面的命令来运行集成测试:
mvn failsafe:integration-test -Pit -Dquarkus.profile=it
尽管指定了 -Dquarkus.profile=it 选项并将 application-it.properties 文件放在适当的位置,但应用程序似乎仍在测试执行期间从 application.properties 中获取属性。
什么可能导致此行为以及如何确保我的测试在使用 it 配置文件运行时使用 application-it.properties 中指定的属性?任何见解或建议将不胜感激。
我尝试使用语法 %profile.property 在文件 application.properties 中定义配置文件属性。但是,具有不同配置文件的属性被忽略。
您可以尝试阅读 quarkus 文档上的部分。 是这么说的
仅当未配置的 application.properties 在同一位置也可用并且文件之间的文件扩展名匹配时,才会加载配置文件感知文件。这是保持一致的加载顺序并将所有资源配对在一起所必需的。
因此,您可能需要在测试->资源文件夹中添加
application.properties
,看看它是否可以识别属性。
希望有帮助🤘