Sonar 上未显示团队城市代码覆盖率和单元测试结果
Team City Code Coverage and Unit Test results not showing on Sonar
我正在尝试将单元测试和 dotCover 代码分析结果从 TeamCity 上传到 Sonar 服务器。它在 TeamCity 中显示代码覆盖率和单元测试结果,但在 Sonar 上没有代码 coverage/unit 测试。
TeamCity 单元测试步骤:
后面是 Powershell 脚本:
我在 Sonar Runner 步骤中有以下附加参数:
Dsonar.cs.vstest.reportsPaths=TestResults.trc
Dsonar.cs.dotcover.reportsPaths='%sonar.coverageReport%'
有谁知道如何解决这个问题?
谢谢。
在第 3 步中使用以下脚本设法解决了问题:
$Files= Get-ChildItem %system.teamcity.build.tempDir% `
-Filter coverage_dotcover*.data `
| where-object {$_.length -gt 50} `
| Select-Object -ExpandProperty FullName
$snapshot =[string]::Join(";",$Files)
& %teamcity.tool.dotCover%\dotCover.exe merge `
/Source=$snapshot `
/Output=%env.TEMP%\dotCoverReport.dcvr`
& %teamcity.tool.dotCover%\dotCover.exe report `
/Source=%env.TEMP%\dotCoverReport.dcvr `
/Output=%sonar.coverageReport% `
/ReportType=HTML
您的 TeamCity 是什么版本?在 TeamCity 9.1.1 中,有一个 bug 导致测试报告文件写入构建临时目录。在这种情况下,希望 trx 文件位于结帐目录中的 Sonar 插件找不到它。
有几种解决方法:第一种是升级到TeamCity 9.1.2及以上版本,第二种是将绝对路径传递给report paths变量:
-Dsonar.cs.vstest.reportsPaths=%system.teamcity.build.tempDir%/TestResults.trc
第三种方法是将指向结帐目录的绝对路径传递给 mstest 运行器的结果文件字段:
%system.teamcity.build.checkoutDir%/TestResults.trc
我正在尝试将单元测试和 dotCover 代码分析结果从 TeamCity 上传到 Sonar 服务器。它在 TeamCity 中显示代码覆盖率和单元测试结果,但在 Sonar 上没有代码 coverage/unit 测试。
TeamCity 单元测试步骤:
后面是 Powershell 脚本:
我在 Sonar Runner 步骤中有以下附加参数:
Dsonar.cs.vstest.reportsPaths=TestResults.trc Dsonar.cs.dotcover.reportsPaths='%sonar.coverageReport%'
有谁知道如何解决这个问题?
谢谢。
在第 3 步中使用以下脚本设法解决了问题:
$Files= Get-ChildItem %system.teamcity.build.tempDir% `
-Filter coverage_dotcover*.data `
| where-object {$_.length -gt 50} `
| Select-Object -ExpandProperty FullName
$snapshot =[string]::Join(";",$Files)
& %teamcity.tool.dotCover%\dotCover.exe merge `
/Source=$snapshot `
/Output=%env.TEMP%\dotCoverReport.dcvr`
& %teamcity.tool.dotCover%\dotCover.exe report `
/Source=%env.TEMP%\dotCoverReport.dcvr `
/Output=%sonar.coverageReport% `
/ReportType=HTML
您的 TeamCity 是什么版本?在 TeamCity 9.1.1 中,有一个 bug 导致测试报告文件写入构建临时目录。在这种情况下,希望 trx 文件位于结帐目录中的 Sonar 插件找不到它。 有几种解决方法:第一种是升级到TeamCity 9.1.2及以上版本,第二种是将绝对路径传递给report paths变量:
-Dsonar.cs.vstest.reportsPaths=%system.teamcity.build.tempDir%/TestResults.trc
第三种方法是将指向结帐目录的绝对路径传递给 mstest 运行器的结果文件字段:
%system.teamcity.build.checkoutDir%/TestResults.trc