You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为现有DotNet项目配置SonarQube分析及代码覆盖率、单元测试

.NET项目配置SonarQube展示代码覆盖率与单元测试结果

前置准备

  • 全局安装SonarScanner工具:dotnet tool install --global dotnet-sonarscanner
  • 给测试项目添加代码覆盖率收集包:在测试项目的.csproj文件中添加引用
    <PackageReference Include="coverlet.collector" Version="6.0.0" PrivateAssets="all" />
    
  • 确保SonarQube服务器正常运行,已创建项目并获取到项目密钥和访问令牌

完整执行流程

1. 初始化SonarScanner并配置报告路径

dotnet sonarscanner begin /k:"你的SonarQube项目密钥" \
  /d:sonar.host.url="http://你的SonarQube服务器地址" \
  /d:sonar.login="你的SonarQube访问令牌" \
  /d:sonar.cs.vstest.reportsPaths="**/*.trx" \
  /d:sonar.cs.opencover.reportsPaths="**/coverage.opencover.xml"
  • sonar.cs.vstest.reportsPaths:指定单元测试结果文件(.trx)的搜索路径
  • sonar.cs.opencover.reportsPaths:指定代码覆盖率报告(opencover格式)的搜索路径

2. 构建项目

dotnet build --configuration Release

3. 执行单元测试并生成覆盖率报告

dotnet test --configuration Release \
  --collect:"XPlat Code Coverage" \
  --results-directory ./TestResults \
  /p:CoverletOutputFormat=opencover
  • --collect:"XPlat Code Coverage":触发coverlet收集代码覆盖率数据
  • /p:CoverletOutputFormat=opencover:生成SonarQube兼容的opencover格式报告
  • --results-directory:统一指定测试结果和覆盖率报告的输出目录,方便后续扫描

4. 结束分析并上传数据到SonarQube

dotnet sonarscanner end /d:sonar.login="你的SonarQube访问令牌"

关键注意事项

  • 如果是.NET Framework项目,建议使用OpenCover工具生成覆盖率报告,对应参数改为sonar.cs.opencover.reportsPaths指向OpenCover输出的.xml文件
  • 若项目目录结构特殊,需调整**/*.trx和**/coverage.opencover.xml的路径,确保能匹配到实际生成的文件
  • 执行命令前,建议清理之前的测试结果目录(TestResults),避免旧数据干扰

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:12:20