当前位置: 首页 > 知识库问答 >
问题:

maven故障保护插件失败和构建成功?

亢建木
2023-03-14

我想使用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>

共有3个答案

公冶鸣
2023-03-14

我对Jenkins builds也有类似的问题。

  • 在本地运行测试导致测试失败,因此生成失败
  • 在Jenkins上运行测试导致测试失败,但“构建成功”

解决方案:在作业配置集中,MAVEN\u选择到-Dmaven。测验失败忽略=false。

Jenkins在默认情况下似乎忽略了失败的集成测试。

参见https://stackoverflow.com/a/28684048/4412885

施誉
2023-03-14

由于您正在运行mvn清洁安装,因此集成测试验证阶段都应该正在执行。根据故障安全插件文档,故障安全:集成测试故障安全:验证目标绑定到这些阶段,因此我不认为需要额外调用故障安全:集成测试

尽管如此,我不确定我是否信任故障保护插件文档。今年早些时候,我为某人回答了一个类似的问题。事实证明,他必须明确地将每个目标绑定到正确的阶段,然后故障保护按预期工作。也许值得一试。

苏嘉歆
2023-03-14

正如Andrew指出的,正确的解决方案是按预期使用故障保护。集成测试目标是专门为不使构建失败而设计的。如果要使生成失败,请调用mvn verify或mvn failsafe:verify

为了使验证目标工作,它需要读取联调的结果,默认情况下,这些结果被写入${project.build.directory}/故障安全报告/failsafe-summary.xml,因此确保正在生成。

此外,您必须确保将您的maven故障保护插件配置绑定到集成测试目标和执行部分中的验证目标。

如果未能添加其中任何一个,那么当集成测试失败时,maven将成功构建,而不是失败。

 类似资料:
  • 在我的项目中,我创建了以下目录结构 在我的pom.xml我做了以下记录 如果我复制src中的资源- 如何使联调也将资源中的文件复制到目标中?

  • 我将使用诱惑报告来监控硒测试结果。我正在使用TestNG和Maven failsafe插件来运行测试。我找到了非常清晰的例子来修改pom。xml,以便在您使用Maven surefire插件时包含case的诱惑,但对Maven failsafe插件则没有。我假设配置应该非常相似,但它不适合我。这是我pom里的东西。xml: 这是我看到的错误: 任何建议都将不胜感激。我假设配置Maven故障保护插件

  • Maven Surefire和Maven故障保护插件之间有什么区别<我在网上到处搜索,但没有找到答案。

  • 我在一个项目中混合了单元测试框架(用于surefire maven插件):JUnit TestNG(几乎所有测试都是JUnit测试,但TestNG包含在两个测试所需的反应流TCK框架中。所有集成测试(故障保护)都只是JUnit测试。我成功地将surefire配置为使用以下插件配置运行两个测试:JUnit和TestNG: 当我运行

  • 我正在运行spring boot,KafkaListener是我的客户。问题是我们如何从失败的kafka配置中恢复,并避免应用程序在退出代码为0的过程结束时停止。例如,不正确的配置可能是不正确的endpointurl。如果无法访问Kafka服务器,也会出现同样的情况。因此,在任何情况下,KafkaListner进程都不应该杀死服务器。 ontext.java:895应用程序上下文异常:未能启动be

  • [错误]D:...\spark-test\java-gett-start\src\main\java\main.java:[73,35]错误:源代码1.5中不支持lambda表达式 这是一个heroku示例java项目,在System.properties文件中设置了java版本:java.runtime.version=1.8 具体行如下: