要在 .Net 框架中获得代码覆盖率结果,您只需在“Visual Studio 测试”任务中启用它:
如果您使用.yml
构建,则语法为:
- task: VSTest@2
inputs:
codeCoverageEnabled: true
结果:
注意:如果您使用 Microsoft Hosted Agent,您将看到结果,如果您使用 Self Hosted Agent,您必须使用 Visual Studio Enterprise 版本才能看到代码覆盖率结果。
如果您想要更详细的代码覆盖率报告,您可以coverlet
在 .Net 框架中使用,方法是在管道期间安装该工具,然后生成报告。您可以使用 PowerShell 脚本:
dotnet tool install dotnet-reportgenerator --tool-path . --version 4.0.12
dotnet tool install coverlet.console --tool-path . --version 1.4.1
mkdir .\reports
$unitTestFile = gci -Recurse | ?{ $_.FullName -like "*bin\*test*.dll" }
$coverlet = "$pwd\coverlet.exe"
& $coverlet $unitTestFile.FullName --target "dotnet" --targetargs "vstest $($unitTestFile.FullName) --logger:trx" --format "cobertura"
gci -Recurse |
?{ $_.Name -eq "coverage.cobertura.xml"} |
%{ &"$pwd\reportgenerator.exe" "-reports:$($_.FullName)" "-targetdir:reports" "-reportstypes:HTMLInline;HTMLChart" }
然后使用以下参数添加“发布代码覆盖率”任务:
结果: