在TFS 2017中将最后生成的.Coverage转换为SonarQubee的coveragexml
Convert the last generated .Coverage into coveragexml for SonarQubee in TFS 2017
我正在使用 .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 Studio19\Enterprise\Team Tools\Dynamic Code Coverage Tools\codecoverage.exe" analyze /output:$output $_.FullName
}
但这会转换整个目录,几天后有很多构建,我只想转换当前构建生成的 .coverage
文件,所以我需要能够隔离 .coverage
当前构建生成的文件。
所以你只想获取最后创建的代码覆盖率文件,你可以过滤 Get-ChiledItem
结果以获得最后一个:
Get-ChildItem -Recurse -Filter "*.coverage" | sort LastWriteTime | select -last 1
我正在使用 .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 Studio19\Enterprise\Team Tools\Dynamic Code Coverage Tools\codecoverage.exe" analyze /output:$output $_.FullName
}
但这会转换整个目录,几天后有很多构建,我只想转换当前构建生成的 .coverage
文件,所以我需要能够隔离 .coverage
当前构建生成的文件。
所以你只想获取最后创建的代码覆盖率文件,你可以过滤 Get-ChiledItem
结果以获得最后一个:
Get-ChildItem -Recurse -Filter "*.coverage" | sort LastWriteTime | select -last 1