Подтвердить что ты не робот

maven-failafe-plugin Неудачи и УСПЕХ СОЗДАНИЯ?

Я хочу использовать maven-отказоустойчивый плагин для запуска некоторых интеграционных тестов. Если какой-либо тест терпит неудачу, я хочу, чтобы Maven отказался от сборки, а не BUILD SUCCESS.

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>
4b9b3361

Ответ 1

решение.

<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>

Ответ 2

Как отметил Эндрю, правильным решением является использование отказоустойчивого, как предполагалось. Цель интеграционного теста специально разработана для того, чтобы не выполнить сборку. Если вы хотите завершить сборку, вызовите mvn verify или mvn failsafe:verify

Ответ 3

Поскольку вы используете mvn clean install должны выполняться как фазы integration-test и verify. В соответствии с отказоустойчивыми документами плагинов failsafe:integration-test и failsafe:verify целей привязана к этим этапам, поэтому я не верю, что дополнительный вызов для failsafe:integration-test.

Тем не менее, я не уверен, что верю в документацию с надежным плагином. Я ответил на аналогичный вопрос для кого-то в начале этого года. Оказалось, что он должен явно привязать каждую цель к правильной фазе, а затем отказоустойчивость работала должным образом. Возможно, стоит сделать снимок.