C#/Jenkins 的代码覆盖率

Lin*_*556 5 c# xml cobertura jenkins

我正在寻找 Jenkins 上的代码覆盖率。不幸的是,我需要 C# 项目的报道。

到目前为止我已经尝试过:我正在使用 dotCover (通过命令行)创建 html 结果或 xml 结果(它正在工作)。我尝试使用“cobertura”插件来查看 xml 结果(它不起作用,我知道,我需要不同的 xml 格式)。我不能仅对项目使用 cobertura,因为只有 freestyle 项目,没有 ant/maven 项目。

那么是否有可能使用 dotCover 结果(xml/html/json)转换为 xml 格式,以便 cobertura(或任何其他插件)认为它是一个实际的“maven/ant”项目?

或者还有其他 C# CodeCoverage 项目的插件可以在 Jenkins 中报告吗?

我是新手,如果问题太简单,很抱歉..=)干杯

K.R*_*and 3

您可以通过 Jenkins 中的 powershell 脚本解析和评估 dotcover 结果(这需要安装Powershell 插件):

通过Powershell解析HTML结果的示例

#Command line arguments: 
#0: File name of the HTML coverage report generated by dotCover
[string]$path = $args[0]
#1: Expected coverage threshold
[int]$threshold = $args[1]

#Retrieving total coverage percentage from HTML coverage report
$pattern = '^.*\[\[\"Total\",(\d+),.*$'
$report = Get-Content $path
$line = $report -match $pattern
$value = $line -replace $pattern, '$1'
[int]$coverage = [convert]::ToInt32($value, 10)

#Comparing coverage with threshold
Write-Host checking coverage threshold: $threshold
if ($coverage -ge $threshold) {  
    Write-Host passed with percent $coverage
    return 0
}
else { 
    Write-Host failed with percent $coverage
    return -1 
}
Run Code Online (Sandbox Code Playgroud)

如果您使用 HTML 结果,还可以使用HTML Publisher 插件发布覆盖率结果

发布 HTML 结果