SonarQube:从未计算过新代码的覆盖率

Posted

技术标签:

【中文标题】SonarQube:从未计算过新代码的覆盖率【英文标题】:SonarQube: Coverage on New Code never calculated 【发布时间】:2017-01-07 08:05:51 【问题描述】:

我已经设置了 SonarQube、Maven 和 Cobertura,以便在每次构建运行时上传单元测试覆盖率。我想使用差异视图来覆盖增量(仅限新代码)。

覆盖范围本身已成功上传,我可以在代码行中看到增量。但是,我无法让“新代码的覆盖范围”起作用。

我为泄漏期尝试了不同的值,包括 previous_analysisprevious_version(在新分析中将版本从 1.0 更改为 1.1)。我还使用-Dsonar.projectDate 来模拟过去的分析日期,但仍然没有运气。

有什么想法吗?

【问题讨论】:

【参考方案1】:

添加这个 sonar.java.binaries=classes 目录,很可能是 target/classes 帮助我解决了这个问题。 No JaCoCo analysis of project coverage can be done since there is no class files

【讨论】:

请考虑将链接中的相关信息添加到答案中提供的空间。【参考方案2】:

“新代码覆盖率”仅在您使用/激活 SCM 支持(SVN、Git、...)时显示。

sonar.scm.disabled=false

【讨论】:

这是什么?那是为了什么,为什么我们应该禁用它?【参考方案3】:

获取 new_code 相关信息/指标的关键要求是利用SonarQube SCM integration。要从中受益,您必须安装适用于您的项目的兼容 SCM 插件(例如 Git Plugin、SVN Plugin 等)。

【讨论】:

这就是我的想法,但我想首先“手动”创建一个最小可行产品。所以你是说我不能通过从命令行手动上传来使用new_code 我不明白你的问题。我要说的是您应该安装Git Plugin(或者取决于您使用的SCM)并验证您的项目设置中是否启用了SCM集成。这是因为 New Code 是根据 SCM blame 信息检测到的。 我安装了 Jazz RTC 插件,我在 SonarQube 中看到的结果是一样的 - 我可以看到新的代码行,但没有新的覆盖 :( 有趣的是,它与 Git 一起工作。我会接受你的回答,并为爵士乐单独发送一个问题。谢谢@Nicolas 我已将 sonar-scm-git-plugin-1.2.jar 添加到 sonarqube-6.2/extensions/plugins/,因为我使用 Git 进行 scm。然而,一切都没有改变。够了吗?

以上是关于SonarQube:从未计算过新代码的覆盖率的主要内容,如果未能解决你的问题,请参考以下文章

代码覆盖率的 SonarQube 增量分析

代码覆盖率:.NET 代码覆盖率和 SonarQube VSTS 集成

SonarQube 8.2 分析显示 0 代码覆盖率

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

代码覆盖率结果未使用 sonarqube 中的分支进行更新

如何在 sonarqube 中设置代码覆盖率值?