Maven-failsafe-ошибки плагина и успех сборки?
Я хочу использовать Maven-failsafe-plugin для запуска некоторых интеграционных тестов. Если какой-либо тест терпит неудачу, я хочу, чтобы Maven провалил сборку и не добился успеха.
Tests run: 103, Failures: 1, Errors: 0, Skipped: 26
[INFO] BUILD SUCCESS*
как я могу настроить его, чтобы построить не успех?
мой отказоустойчивый плагин настроен как:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${failsafe.version}</version>
<configuration>
<systemProperties>
<CI_INTEGRATION_OVERRIDE_PATH>${basedir}/..</CI_INTEGRATION_OVERRIDE_PATH>
</systemProperties>
<includes>
<include>**/integration/**/*.java</include>
</includes>
<excludes>
<exclude>**/integration/**/*TestSuite.java</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
3 ответов
Как отметил Эндрю, правильное решение-использовать отказоустойчивость по назначению. Цель integration-test специально разработана, чтобы не допустить сбоя сборки. Если вы хотите провалить сборку, вызовите mvn verify
или mvn failsafe:verify
как вы используете mvn clean install
и integration-test
и verify
фазы должны выполняться. Согласно failsafe plugin docs failsafe:integration-test
и failsafe:verify
цели привязаны к этим фазам, поэтому я не верю в дополнительный вызов - это.
тем не менее, я не уверен, что доверяю документации отказоустойчивого плагина. Я!--9-- > ответил на аналогичный вопрос для кого-то в начале этого года. Оказалось, что он должен был четко привязать каждый гол к правильному фаза, а затем failsafe работал, как ожидалось. Может, стоит попробовать.
решение.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<id>unit-test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
<excludes>
<exclude>**/*IntegrationTest.java</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
<enableAssertions>false</enableAssertions>
<includes>
<include>**/*IntegrationTest.java</include>
</includes>
<systemPropertyVariables>
<integration>${integration}</integration>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>