По умолчанию покрытие кода для Задачи 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. *