Как создать отчет о покрытии кода для модульных тестов asp.net в сборке Azure DevOps - PullRequest
1 голос
/ 09 июня 2019

Мне нужно руководство по созданию отчета о покрытии кода модульных тестов Asp.net в конвейере сборки Azure.Мой проект основан на .Net Framework 4.6.

Я могу выполнить все модульные тесты, используя «Visual Studio Test» .

Я попытался выполнить задачу "Генератор отчетов" , но для этого требуются файлы xbert cobertura или jacoco и т. Д., Которые невозможно создать в конвейере сборки.

Ожидание - Я хочу получить отчет о покрытии кода для выполненных модульных тестов, который покажет полную информацию, такую ​​как покрытие линий, покрытие переходов, покрытие функций и т. Д., Такое же, что генерирует «генератор отчетов».

Примечание: Я могу создавать отчеты с использованием opencover и reportgenerator в моей локальной системе, но не могу найти способ сделать то же самое в конвейере сборки Azure.

1 Ответ

2 голосов
/ 10 июня 2019

Чтобы получить результаты Code Coverage в .Net framework, вам просто нужно включить его в задаче «Visual Studio Test»:

enter image description here

Есливы используете .yml строит синтаксис:

- task: VSTest@2
  inputs:
    codeCoverageEnabled: true

Результаты:

enter image description here

Примечание: если вы используете Microsoft HostedАгент, вы увидите результаты, если вы используете Self Hosted Agent, вам нужна версия Visual Studio Enterprise, чтобы увидеть результаты покрытия кода.

Если вам нужен более подробный отчет о покрытии кода, вы можете использовать coverlet в .Net framework.установить инструмент во время конвейера и затем сгенерировать отчет.Вы можете сделать это с помощью сценария 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" }

enter image description here

Затем добавьте задачу «Публикация покрытия кода» со следующими параметрами:

enter image description here

Результаты:

enter image description here

...