Maven的故障保护,插件故障和使成功?(maven-failsafe-plugin Failure

2019-06-27 20:40发布

我想使用maven的故障保护,插件运行一些集成测试。 如果测试失败,我想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>

Answer 1:

安德鲁指出,正确的解决方法是使用故障安全为目的。 集成测试的目标是专门设计不构建失败。 如果你想构建失败,调用mvn verifymvn failsafe:verify

为了verify目标努力,它需要读取它默认被写入集成测试的结果${project.build.directory}/failsafe-reports/failsafe-summary.xml所以请确保是如何产生。

此外,你必须确保你的绑定maven-failsafe-plugin配置两个integration-test目标和verify在目标executions的部分。

未能添加这类原因会导致随后的Maven构建,而不是没有它,当集成测试失败。



Answer 2:

既然你正在运行mvn clean install两个integration-testverify阶段应该执行。 根据故障安全插件文档的failsafe:integration-testfailsafe:verify目标绑定到这些阶段,所以我不相信额外的通话failsafe:integration-test是必需的。

不过话虽如此,我不知道我信任的故障安全插件文档。 我回答了类似的问题在今年早些时候的人。 原来,他曾明确地结合每个目标的正确的相位,然后故障安全发挥预期。 可能是值得一试。



Answer 3:

解。

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


文章来源: maven-failsafe-plugin Failures and BUILD SUCCESS?