将最后生成的 .Coverage 转换为 TFS 2017 中 SonarQubee 的 coveragexml

Posted

技术标签:

【中文标题】将最后生成的 .Coverage 转换为 TFS 2017 中 SonarQubee 的 coveragexml【英文标题】:Convert the last generated .Coverage into coveragexml for SonarQubee in TFS 2017 【发布时间】:2020-05-14 16:06:07 【问题描述】:

我正在使用 .Net Core Test --collect "Code coverage" 生成覆盖文件,我需要将其转换为 sonarqube,问题是我没有将生成的文件的名称放在带有 guid 的文件夹中名称和文件名本身就是一个 GUID,都在 TestResults 文件夹下

以下脚本用于将.coverage 文件转换为coveragexml,但它适用于整个工作目录

Get-ChildItem -Recurse -Filter "*.coverage" | % 
$outfile = "$([System.IO.Path]::GetFileNameWithoutExtension($_.FullName)).coveragexml"
$output = [System.IO.Path]::Combine([System.IO.Path]::GetDirectoryName($_.FullName), $outfile)
"Analyse '$($_.Name)' with output '$outfile'..."
. "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Team Tools\Dynamic Code Coverage Tools\codecoverage.exe" analyze /output:$output $_.FullName

但这会转换整个目录,几天后有很多构建,我想做的只是转换当前构建生成的.coverage文件,所以我需要能够隔离生成的.coverage文件按当前构建。

【问题讨论】:

【参考方案1】:

所以你只想取最后一个创建的代码覆盖率文件,你可以过滤Get-ChiledItem结果得到最后一个:

Get-ChildItem -Recurse -Filter "*.coverage" | sort LastWriteTime | select -last 1

【讨论】:

以上是关于将最后生成的 .Coverage 转换为 TFS 2017 中 SonarQubee 的 coveragexml的主要内容,如果未能解决你的问题,请参考以下文章

尝试从 Excel 2013 批量导入到 TFS 时,如何将我的平面列表转换为树列表?

Maven Cobertura 插件不生成coverage.xml

怎么合并Jacoco的Code Coverage Report

将 PCOV 与 --coverage 一起使用时,代码接收测试失败

解析 Xcode 9 生成的 Coverage 文件时 SonarQube SonarSwift 插件异常

arcgis点文件导出后转入mapgis不显示