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>