如何忽略 Maven 构建中特定失败的单元测试结果?
How to ignore the specific failed unit test result in Maven build?
我在 Integration.java
下有一些单元测试。我希望 Maven 忽略此 class 的测试结果,因为它们很少失败(由于外部服务器维护)。但我不想从 运行 中忽略它们,因为我需要它们来覆盖代码。
我试过这个配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>IntegrationTest.java</include>
</includes>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
这似乎是通过忽略失败的测试来实现的。但是上述配置的问题是,它也忽略了其他 classes 的失败测试。
我希望 Integration.java
下的所有测试都需要执行,但它不应该对确定 success/failure 的构建有任何影响。
但是,如果任何测试用例在除 Integration.java
之外的任何其他测试 classes 下失败,构建应该会失败
Surefire
默认包括名称以 Test/ends 和 Test/Tests/TestCase.[=12= 开头的所有测试 类 ]
您可以根据需要使用排除和包含参数:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<excludes>
<exclude>DataTest.java</exclude>
</excludes>
<includes>
<include>DataCheck.java</include>
</includes>
</configuration>
</plugin>
就像@khmarbaise提到的,它需要由maven-failsafe
而不是surefire plugin
来处理
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<includes>
<include>*IntegrationTest.java</include>
</includes>
</configuration>
<executions>
<execution>
<id>failsafe-integration-tests</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
</executions>
</plugin>
通过使用 maven-failsafe-plugin
我确保了测试用例 运行 和良好的代码覆盖率,即使上游关闭,构建也不会失败。
我在 Integration.java
下有一些单元测试。我希望 Maven 忽略此 class 的测试结果,因为它们很少失败(由于外部服务器维护)。但我不想从 运行 中忽略它们,因为我需要它们来覆盖代码。
我试过这个配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>IntegrationTest.java</include>
</includes>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
这似乎是通过忽略失败的测试来实现的。但是上述配置的问题是,它也忽略了其他 classes 的失败测试。
我希望 Integration.java
下的所有测试都需要执行,但它不应该对确定 success/failure 的构建有任何影响。
但是,如果任何测试用例在除 Integration.java
Surefire
默认包括名称以 Test/ends 和 Test/Tests/TestCase.[=12= 开头的所有测试 类 ]
您可以根据需要使用排除和包含参数:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<excludes>
<exclude>DataTest.java</exclude>
</excludes>
<includes>
<include>DataCheck.java</include>
</includes>
</configuration>
</plugin>
就像@khmarbaise提到的,它需要由maven-failsafe
而不是surefire plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<includes>
<include>*IntegrationTest.java</include>
</includes>
</configuration>
<executions>
<execution>
<id>failsafe-integration-tests</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
</executions>
</plugin>
通过使用 maven-failsafe-plugin
我确保了测试用例 运行 和良好的代码覆盖率,即使上游关闭,构建也不会失败。