Отображение покрытия кода тестами NUnit на Azure DevOps - PullRequest
0 голосов
/ 28 апреля 2020

Я установил новый конвейер на Azure DevOps, который создает и запускает тесты проектов. Тесты написаны с использованием NUnit.

В конвейере я использую задачу VSTest@2 для запуска модульных тестов и добавляю codeCoverageEnabled к true.

. конец конвейера запускается, и когда я go на вкладке «Покрытие кода» задания, это позволяет мне загрузить файл .codecoverage, но он не отображает его содержимое на вкладке. Насколько я понимаю, это должно произойти.

Как я могу это исправить?

Спасибо

1 Ответ

0 голосов
/ 28 апреля 2020

По умолчанию покрытие кода для Задачи VSTest выводится в файл .codecoverage, который Azure DevOps не знает, как интерпретировать, и предоставляет его только как загружаемый файл. Вам нужно будет использовать несколько DotNetCoreCLI задач и обложку , чтобы иметь возможность отображать результаты покрытия кода на вкладке покрытия кода в azure конвейерах.

Итак, если вы on. NET CORE, есть способ, которым вы можете это сделать.

Шаг 1 добавить Coverlet.collector nuget Пакет в вашем тестовом проекте

Шаг 2 Измените azure-pipelines.yml, включив в него следующее для покрытия кода: Если у вас есть какие-либо настройки из файла CodeCoverage.runsettings, вы также можете сохранить их

- task: DotNetCoreCLI@2
  inputs:
    command: 'test'
    projects: '**/*.Tests/*.csproj'
    arguments: -c $(BuildConfiguration) --collect:"XPlat Code Coverage" -- RunConfiguration.DisableAppDomain=true
    testRunTitle: 'Run Test and collect Coverage' 
  displayName: 'Running tests'

- task: DotNetCoreCLI@2
  inputs:
    command: custom
    custom: tool
    arguments: install --tool-path . dotnet-reportgenerator-globaltool
  displayName: Install ReportGenerator tool

- script: reportgenerator -reports:$(Agent.TempDirectory)/**/coverage.cobertura.xml -targetdir:$(Build.SourcesDirectory)/coverlet/reports -reporttypes:"Cobertura"
  displayName: Create reports

- task: PublishCodeCoverageResults@1
  displayName: 'Publish code coverage'
  inputs:
    codeCoverageTool: Cobertura
    summaryFileLocation: $(Build.SourcesDirectory)/coverlet/reports/Cobertura.xml  

Еще одна вещь, которую стоит отметить для приведенного выше кода это Генератор отчетов . В зависимости от используемой версии ядра. net может потребоваться получить другую версию инструмента.

Более подробную информацию также можно найти в Документах Microsoft * 1027. *

...