单元测试覆盖率报告未显示在 SonarQube 仪表板上

Posted

技术标签:

【中文标题】单元测试覆盖率报告未显示在 SonarQube 仪表板上【英文标题】:Unit testing Coverage report not showing on SonarQube Dashboard 【发布时间】:2017-11-18 18:20:42 【问题描述】:

我们的声纳构建环境详情如下:

* SonarQube Server Version - 5.6.6 (64-Bit). 
* Sonar Client Build Operating System – Ubuntu 14.04.5 LTS (64-Bit). 
* Sonar-scanner- Version - 3.0.3.778.
* sonar-cxx-plugin-0.9.7.jar
* Source Code Language: C++
* gcovr Version - 3.3

当前问题:

我们有单元测试覆盖率报告(Gcovr - 基于 .XML - CoverageReport.xml)文件,Sonar 不会在日志中显示任何错误消息,也不会在 SonarQube Dashboard 上显示覆盖率信息。 我的 sonar-project.properties 文件包含以下信息以导入我的覆盖率报告。

sonar.cxx.coverage.reportPath=VE_L/CoverageReport.xml

声纳扫描仪日志未显示任何错误。而我可以看到导入成功。

10:28:23.717 INFO  - Scanner found '1' report files
10:28:23.717 INFO  - Parser will parse '1' report files
10:28:23.921 INFO  - Added report '/home/srinivas.ghs/Jenkins/workspace/VE_Engine/MORE_SERVICE/VideoMaker/Development/DREAM/VE_L/CoverageReport.xml' (parsed by: CoberturaParser) to the coverage data
10:28:24.080 INFO  - Project 'scm.team.videoeditor' Cycles:0 Feedback cycles:0 Tangles:0 Weight:0.0
10:28:24.081 INFO  - Sensor CxxSquidSensor (done) | time=11057ms

注意:我已经配置了单元测试覆盖率和集成测试覆盖率 Wedgits。

那么你能帮我在 SonarQube Dashboard 上显示我的单元测试覆盖率报告吗?

【问题讨论】:

【参考方案1】:

gcovr之前试试这个:

find . -iname "*.gcno" -o -iname "*.gcda" | xargs gcov

【讨论】:

嗨 Luis,我应该使用相同的 gcovr 版本 - 3.3(或者)我需要使用 gcovr 版本 - 2.4 吗? Noup(我认为),因为 gcovr 解析 gcov 的文件,这就是你必须在 gcovr 之前运行 gcov 的原因 使用 gcovr-3.3 版本生成的报告修改了具有完整路径的文件名。发布能够在 sonarqube 仪表板中查看结果的内容。谢谢。

以上是关于单元测试覆盖率报告未显示在 SonarQube 仪表板上的主要内容,如果未能解决你的问题,请参考以下文章

nUnit 的结果未显示在 SonarQube 中

SonarQube 没有获得单元测试覆盖率

使用 rspec 的 Sonarqube 未显示单元测试的计数

具有 android 测试和测试覆盖率的 sonarqube

带有 jacoco 插件的 SonarQube 覆盖百分比显示为零,但可以看到单元测试的数量

SonarQube 覆盖范围未显示