You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在SonarQube Dashboard展示PCs业务层代码覆盖率

解决SonarQube展示PCs业务层代码覆盖率的问题

嗨,别着急,我来帮你排查这个覆盖率显示为0%的问题,结合你推测的“SonarQube展示的是WebProject而非业务层”,咱们可以从这几个方向入手调整:

1. 明确SonarQube的扫描目标模块

首先要确保SonarQube在扫描时,精准覆盖到PCs业务层的代码目录,而不是只聚焦WebProject:

  • 在Jenkins的SonarQube配置环节,检查sonar.sources参数,要把PCs业务层的路径加进去,比如:
    sonar.sources=./PCs-BusinessLayer,./WebProject
    
  • 如果是多模块项目,确认sonar.modules配置里包含了PCs业务层模块,避免SonarQube只扫描Web模块。

2. 确保MS Test的覆盖率报告关联到业务层

因为你的测试用例基于MS Test,得保证生成的覆盖率数据正确指向PCs业务层:

  • 检查Jenkins中MS Test的执行步骤,确认测试用例确实在调用PCs业务层的类和方法(可以手动运行测试用例验证)。
  • 建议用OpenCover这类工具转换覆盖率报告,方便SonarQube读取,执行命令时要指定业务层的程序集过滤规则,比如:
    OpenCover.Console.exe -target:"vstest.console.exe" -targetargs:"PCs-TestProject.dll" -output:"opencover.xml" -filter:"+[PCs-BusinessLayer]*"
    
  • 在SonarQube配置里指定报告路径:
    sonar.cs.opencover.reportPaths=./opencover.xml
    

3. 在SonarQube Dashboard中切换到正确视图

有时候不是数据没收集到,只是默认视图没展示业务层:

  • 登录SonarQube后,在顶部项目选择器里,确认当前查看的是包含PCs业务层的完整项目。
  • 如果业务层是子模块,进入项目的「模块」标签页,找到PCs业务层模块,查看它的专属覆盖率数据。
  • 还可以自定义Dashboard,添加专门针对PCs业务层的覆盖率组件,以后就能直接看到目标模块的覆盖情况。

4. 检查扫描日志确认数据收集情况

每次Jenkins构建完成后,查看SonarQube扫描的日志,重点找这些关键词:

  • Coverage Report Statistics:看是否有PCs业务层的代码覆盖数据被统计到。
  • Excluded sources:排查是否PCs业务层的代码被误排除了。
    如果日志里没显示业务层的覆盖数据,就得回到测试执行、报告生成的环节重新验证。

内容的提问来源于stack exchange,提问作者Jain Prince

火山引擎 最新活动