Как предотвратить выполнение тестов при активном профиле пружины? - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть приложение Spring Boot, созданное на Maven.Я использую профили Spring, чтобы различать конфигурацию, зависящую от среды.Я хотел бы предотвратить запуск тестов, когда конкретный профиль Spring активен.Причина: я бы хотел запретить запуск тестов с производственными свойствами (spring.profiles.active=prod).Я хотел бы сделать это глобально (возможно, с некоторым плагином Maven) вместо каждого теста в отдельности.

Есть ли у вас проверенные решения для этого?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019
<profiles>
    <profile>
        <id>prod</id>
        <properties>
            <maven.test.skip>true</maven.test.skip>
        </properties>
    </profile>
</profiles>
0 голосов
/ 12 февраля 2019

Вы можете использовать @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 все тесты будут пропущены

...