我在Maven上构建了一个Spring Boot应用程序。我正在使用Spring配置文件来区分特定于环境的配置。当特定的Spring配置文件处于活动状态时,我想防止运行测试。原因:我想防止使用生产属性(spring.profiles.active=prod
)运行测试。我想在全球范围内执行此操作(也许使用某些Maven插件),而不是分别在每个测试上进行。
您对此有任何检查的解决方案吗?
答案 0 :(得分:1)
<profiles>
<profile>
<id>prod</id>
<properties>
<maven.test.skip>true</maven.test.skip>
</properties>
</profile>
</profiles>
答案 1 :(得分:0)
您可以使用@IfProfileValue
批注。但是您必须向活动配置文件中添加一些值,并使用提到的注释阅读它。您可以在此处阅读更多信息(第3.4.3节):https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html#integration-testing
编辑: 另一个解决方案是在Surefire插件中排除所有(或选定的测试)测试:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
<exclude>${exclude.tests}</exclude>
</excludes>
</configuration>
</plugin>
...
<profile>
<id>prod</id>
<properties>
<exclude.tests>**/*.*</exclude.tests>
</properties>
</profile>
然后,当您运行mvn clean test -Pprod
时,所有测试都将被跳过