You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SonarQube报告无法生成:测试用例失败时如何生成报告?

解决测试用例失败时仍生成Sonar报告的方案

当然有办法搞定这个问题!我维护老旧Java项目时也碰到过一模一样的情况,下面按常用构建工具给你分方案说明:

Maven 项目

1. 配置Surefire插件忽略测试失败

在项目的pom.xml中找到maven-surefire-plugin的配置,添加<testFailureIgnore>参数,让Maven在测试失败后继续执行后续任务:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>你的插件版本</version>
    <configuration>
        <!-- 忽略测试失败,让构建继续 -->
        <testFailureIgnore>true</testFailureIgnore>
    </configuration>
</plugin>

配置完成后,执行常规的Sonar扫描命令即可:

mvn clean test sonar:sonar

2. 命令行临时忽略测试失败(无需修改pom)

如果不想修改项目配置,也可以在执行命令时通过参数临时开启测试失败忽略:

# 先执行测试(忽略失败),再执行Sonar扫描
mvn clean test -Dmaven.test.failure.ignore=true sonar:sonar

Gradle 项目

1. 配置Test任务忽略失败

在build.gradle中修改test任务的配置,让它不因为测试失败终止构建:

test {
    // 允许测试失败,继续执行后续任务
    ignoreFailures = true
}

之后执行Gradle的Sonar扫描命令:

gradle clean test sonarqube

2. 命令行临时设置(无需修改build文件)

同样支持临时通过命令行参数设置:

gradle clean test -Dtest.ignoreFailures=true sonarqube

注意事项

  • 以上设置只会让构建继续完成并生成Sonar报告,SonarQube中依然会正常显示测试失败的数量和具体详情,不会掩盖测试问题。
  • 如果你的CI/CD流程原本会因测试失败终止,可能需要调整CI逻辑,比如只在Sonar质量门不达标时触发构建失败,而非测试失败直接终止。

内容的提问来源于stack exchange,提问作者deepika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:13:51