Sonar如何在新增代码上跳过条件覆盖率检测
SonarQube跳过条件覆盖率检测的方法
方案1:调整质量阈规则(项目级全局生效,推荐)
- 登录SonarQube控制台,进入对应项目的项目设置页,选择「质量阈」配置项
- 查看当前项目绑定的质量阈,删除其中新增代码条件覆盖率、整体条件覆盖率相关的规则条目,仅保留你需要的「新增代码行覆盖率≥90%」规则即可
- 如果你使用的是全局公共质量阈,不想影响其他项目,可单独创建当前项目的专属质量阈,仅配置行覆盖率要求后绑定到当前项目即可
方案2:通过扫描配置直接禁用条件覆盖率统计
- Maven项目pom.xml配置:在properties节点添加以下属性
<properties> <!-- 完全禁用条件覆盖率统计 --> <sonar.coverage.conditionCoverage.enabled>false</sonar.coverage.conditionCoverage.enabled> <!-- 若仅需跳过条件覆盖率的质量阈校验,保留统计展示,可添加以下配置 --> <sonar.qualitygate.ignore.conditions>new_coverage_condition,coverage_condition</sonar.qualitygate.ignore.conditions> </properties>
- 扫描命令临时传参:执行Sonar扫描时直接携带参数
mvn sonar:sonar -Dsonar.coverage.conditionCoverage.enabled=false - 独立sonar-project.properties配置文件添加:
sonar.coverage.conditionCoverage.enabled=false
方案3:局部代码忽略条件覆盖率检测
如果不需要全局禁用,仅需跳过部分代码的条件覆盖率统计,在对应类、方法上添加注解即可:@SuppressWarnings("squid:S3442")
S3442为SonarQube条件覆盖率检测对应的规则ID,添加注解后对应代码块的条件覆盖率不会被纳入统计范围
内容的提问来源于stack exchange,提问作者Vall
相关产品推荐
相关产品推荐

