SonarQube 代码覆盖率 - 排除某些类

Posted

技术标签:

【中文标题】SonarQube 代码覆盖率 - 排除某些类【英文标题】:SonarQube code coverage - exclude some classes 【发布时间】:2021-08-29 02:34:06 【问题描述】:

有没有办法通过排除某些类来有目的地增加 SonarQube 中的代码覆盖率值。

【问题讨论】:

是的,您可以使用声纳属性sonar.exclusions 排除您不想要的类。 @SouravAtta 我像上面一样尝试过,但似乎代码覆盖率没有增加。 尝试使用sonar.coverage.exclusions。因为 sonar.coverage.exclusions 是要从覆盖率计算中排除的文件路径模式的逗号分隔列表。你的模式应该是这样的sonar.coverage.exclusions=com/abc/demo/presentation/beans/**/*, com/abc/demo/presentation/interfaces/**/*, com/abc/demo/presentation/validator/**/*, com/abc/utility/**/* 谢谢@SouravAtta。它奏效了 欢迎您:) 我已经添加了答案。请接受。 【参考方案1】:

尝试使用 sonar.coverage.exclusions

sonar.coverage.exclusions 是要从覆盖率计算中排除的文件路径模式的逗号分隔列表。你的模式应该是这样的:

sonar.coverage.exclusions=com/abc/demo/presentation/beans/**/*, com/abc/demo/presentation/interfaces/**/*, com/abc/demo/presentation/validator/**/*, com/abc/utility/**/*

注意:此选项的文档已在 7.3 中删除(Google:site:docs.sonarqube.org "sonar.coverage.exclusions")。但是,当您在 Sonar ->“常规设置”->“分析范围”上打开项目的管理页面时,您仍然可以看到它们。查找“Key:”后的值

【讨论】:

【参考方案2】:

您可以在 sonar-project.properties 文件中排除某些文件:

sonar.exclusions=**/*.js,**/*.json,**/*.xml,**/*.png,**/*.sh,**/*.h,**/*.m,**/*.c,**/*.cpp,**/*.pdf,**/*.plist,Pods/**/*
sonar.swift.excludedPathsFromCoverage=.*Tests.*

此外,您可以使用以下方法包含特定文件:

sonar.test.inclusions=**/*Test*/**
sonar.test.inclusions=*.swift

【讨论】:

以上是关于SonarQube 代码覆盖率 - 排除某些类的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中排除方法以进行 sonarqube 代码覆盖

SonarQube MSBuild Scanner 不会从分析中排除文件

SonarQube 排除的覆盖来源因项目而异

如何验证某些排除类和jacoco插件的最小覆盖率?

从 gcov/lcov 覆盖结果中排除某些功能

如何验证某些排除类和 jacoco 插件的最小覆盖率?