我是 Jenkins 和 SonarQube 配置的新手。想要在 SonarQube Dashboard 中显示项目的 PC 层的代码覆盖率。(测试用例是使用 MS 测试框架编写的)尽管有 40 多个 PC 层测试用例,SonarQube Dashboard 仍显示 0% 的覆盖率。以下是“构建”配置:
假设可能的原因 - sonarqube 仪表板显示 WebProject 的结果(如屏幕截图中突出显示的那样)而不是业务层。需要帮助显示项目业务层的覆盖范围(屏幕截图中突出显示的 PC)
你有 24k 行代码和 40 个单元测试?覆盖率可能低于 1%……甚至低于 0.5%。所以这被四舍五入到 0%。
如果您想缩小范围,您可以为您不希望包含在覆盖率计算中的内容设置排除项(您必须在更新后重新分析才能使其生效)但您仍然可能在您添加更多测试之前,权重约为 0%。
几个月后,我得以解决。正如上面问题中强调的那样,要求是实现对 PC 等业务层的代码覆盖。这是通过以下步骤修复的:
声纳插件顺序应该是:
注意:确保使用 VSTest.console而不是 MS Test运行单元测试
在windows批处理命令插件中更改路径以删除测试结果文件
d:\jenkins\tools\nuget\nuget.exe restore "%WORKSPACE%\<Project>.sln"
if exist TestResults\ del TestResults\*.trx
if exist TestResults\ del TestResults\*.coveragexml
将单元测试 dll 的路径更改为 -“Bin\.UnitTest.dll”。