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

Posted

技术标签:

【中文标题】SonarQube 排除的覆盖来源因项目而异【英文标题】:SonarQube Excluded sources for coverage differ between projects 【发布时间】:2018-12-25 07:48:44 【问题描述】:

今天我在合并后想知道为什么我们在同一个项目的单元测试覆盖率上略有不同,两个分支中的代码相同。

我首先调查了 Jenkins 作业,SonarQube 扫描的配置是相同的。然后在服务器配置中搜索一段时间,如果其中一个项目有任何不同的配置 - 也是我们那里的相同且非常标准的配置。

然后我更深入地查看了 Jenkins 作业的日志文件并找到了这个。

分支 A 上的项目 A 具有此覆盖排除项,这 100% 反映了服务器配置中的模式:

Good

然后在分支 B 上的项目 A 使用相同的源代码:

Bad

如您所见,所有设置都相同,但覆盖范围排除除外。

有人知道为什么 SonarQube 会这样吗?

版本 6.7.2(内部版本 37468)

谢谢你, 安德烈

【问题讨论】:

数据太少,无法诊断。您可能想要扩展您的排除/包含配置、项目结构、分析命令…… 嘿,我发现了问题。在 Jenkins 配置中,此特定作业有一个明确的覆盖。这就是它没有采取服务器配置的原因。 【参考方案1】:

在 Jenkins 配置中,此特定作业有一个明确的覆盖。这就是为什么它没有采取服务器配置

【讨论】:

以上是关于SonarQube 排除的覆盖来源因项目而异的主要内容,如果未能解决你的问题,请参考以下文章

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

如何从已分析的排除文件中删除SonarQube上的问题?

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

SonarQube 测试覆盖率 .NET 5

使用 Powermock 在 Sonarqube 中配置 jacoco 以进行集成和单元测试报告

使用 Sonarrunner 和 Gradle 从 Jacoco 报告中排除包