特定弹簧轮廓处于活动状态时如何防止运行测试?

时间:2019-02-12 14:11:22

标签: java spring maven spring-boot spring-profiles

我在Maven上构建了一个Spring Boot应用程序。我正在使用Spring配置文件来区分特定于环境的配置。当特定的Spring配置文件处于活动状态时,我想防止运行测试。原因:我想防止使用生产属性(spring.profiles.active=prod)运行测试。我想在全球范围内执行此操作(也许使用某些Maven插件),而不是分别在每个测试上进行。

您对此有任何检查的解决方案吗?

2 个答案:

答案 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时,所有测试都将被跳过