Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven安装通过,但有些测试失败_Java_Spring_Maven_Junit_Spring Boot - Fatal编程技术网

Java Maven安装通过,但有些测试失败

Java Maven安装通过,但有些测试失败,java,spring,maven,junit,spring-boot,Java,Spring,Maven,Junit,Spring Boot,我正在为一个springboot项目运行maven安装,该项目在STS中有多个模块 我可以看到很少有测试用例失败,但是maven安装通过并显示构建成功 这些测试没有被跳过,它们在安装阶段运行,并且surefire报告也会在测试失败的情况下生成,但不知何故构建通过了 我希望构建失败,因为测试失败了,有什么建议值得赞赏吗 <properties> <maven-surefire-plugin-version>2.16</maven-surefire-plugin

我正在为一个springboot项目运行maven安装,该项目在STS中有多个模块

我可以看到很少有测试用例失败,但是maven安装通过并显示构建成功

这些测试没有被跳过,它们在安装阶段运行,并且surefire报告也会在测试失败的情况下生成,但不知何故构建通过了

我希望构建失败,因为测试失败了,有什么建议值得赞赏吗

<properties>
    <maven-surefire-plugin-version>2.16</maven-surefire-plugin-version>
    <junit.version>4.12</junit.version>

    ...
    ...
</properties>
..
..
<dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        ...
        ...
</dependency>

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.16</version>
            </plugins>
            ...
            ...
            ...
    </pluginManagement>
</build>

最后,展示了所有模块的成功构建。难道它不应该在检测到故障后立即停止构建war吗?

有没有可能使用故障保护插件运行失败的测试?此插件不会在失败测试的基础上使构建失败,因为:

如果您使用Surefire插件运行测试,那么当您遇到测试失败时,构建将在集成测试阶段停止,并且您的集成测试环境将无法正确拆除

故障保护插件在构建生命周期的集成测试和验证阶段用于执行应用程序的集成测试。故障保护插件不会在集成测试阶段使构建失败,从而使集成后测试阶段得以执行。


构建生命周期中的测试阶段由插件执行。它的一个选项,
testFailureIgnore
,用于执行测试并成功完成构建,而不管结果如何。这是有用的,例如当生成声纳的度量时


激活此选项的一种方法是使用
-Dmaven.test.failure.ignore
,也许您已经在您的构建中启用了此选项。

根据surefire maven插件的文档,它不会因设计而导致测试失败。原因是:SureFireMaven插件应该执行所有测试并提供一般统计数据

如果要节省时间,可以使用以下参数:

<skipAfterFailureCount>N</skipAfterFailureCount>

张贴你的POM。否则这只是猜测。并发布运行Maven所使用的命令。添加了相关部分,如果您想查看pom中的任何特定部分,请告诉我。我使用STS作为IDE,所以以“RunAs”->maven安装(m2 eclipse插件)的方式运行maven,您是否也可以发布maven日志的相关部分?你说的不应该发生。mvn帮助:如何触发构建?有没有可能改变答案?这纯粹是猜测,所以这不是有用的答案。你应该发表评论,询问更多信息。第一个回答是没有意义的。不,不使用failsafe plugin.tbh,对这个问题有这么多评论,我有点失望,因为它这么简单,OP没有在他的命令行上看到这个选项;-)
<skipAfterFailureCount>N</skipAfterFailureCount>
https://maven.apache.org/surefire/maven-surefire-report-plugin/