C#/ Jenkins的代码覆盖率

时间:2016-02-17 15:41:22

标签: c# xml jenkins cobertura

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

到目前为止我尝试过的事情: 我使用dotCover(在命令行上)来创建html结果或xml结果(它正在工作)。 我尝试使用" cobertura"插件查看xml结果(它不工作,我知道,我需要不同的xml格式)。 我不能只使用cobertura进行项目,因为只有自由式项目,没有蚂蚁/专家项目。

因此有可能使用dotCover结果(xml / html / json)转换为xml格式,因此cobertura(或任何其他插件)认为它是一个真实的" maven / ant"项目

或者是否有任何其他C#CodeCoverage项目的插件可以在Jenkins中报告?

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

1 个答案:

答案 0 :(得分:1)

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

通过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 
}

如果您使用的是HTML结果,也可以使用以下方式发布覆盖率结果 HTML Publisher plugin

Publish HTML result