Сбой результата покрытия кода Publi sh в конвейере azuredevops - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть команда тестирования .netcode и задача результатов покрытия кода publi sh в моем конвейере.

config, как показано ниже:

steps:
- task: DotNetCoreCLI@2
  displayName: 'Test Public API Project '
  inputs:
    command: test
    projects: '**/DWP.CDA.API.Test.csproj'
    arguments: '--output publish_output --configuration $(BuildConfiguration) /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:Threshold=99 /p:ThresholdStat=total /p:CoverletOutput=$(Build.SourcesDirectory)\TestResults\Coverage\ --collect "Code coverage"'

steps:
- task: PublishCodeCoverageResults@1
  displayName: 'Publish code coverage'
  inputs:
    codeCoverageTool: Cobertura
    summaryFileLocation: '$(Build.SourcesDirectory)/TestResults/Coverage/*cobertura.xml'
    reportDirectory: '($(Build.SourcesDirectory)/Src/TestResults/Coverage'

Но похоже, что publi sh результаты не вступают в силу, такие сообщения будут отображать

[warning]No code coverage results were found to publish.

1 Ответ

0 голосов
/ 18 февраля 2020

Вы также установили и запустили инструмент ReportGenerator, чтобы получить отчет о покрытии кода в правильном формате? Ваше предупреждение выглядит так, как будто задача сборки не находит файл xml для публикации sh в папке, в которой вы просматриваете.

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

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

- task: DotNetCoreCLI@2
  displayName: 'Run unit tests - $(buildConfiguration)'
  inputs:
    command: 'test'
    arguments: '--no-build --configuration $(buildConfiguration) /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:CoverletOutput=$(Build.SourcesDirectory)/TestResults/Coverage/'
    publishTestResults: true
    projects: '**/*.Tests.csproj'

- script: |
    reportgenerator -reports:$(Build.SourcesDirectory)/**/coverage.cobertura.xml -targetdir:$(Build.SourcesDirectory)/CodeCoverage -reporttypes:HtmlInline_AzurePipelines
  displayName: 'Create code coverage report'

- task: PublishCodeCoverageResults@1
  displayName: 'Publish code coverage report'
  inputs:
    codeCoverageTool: 'cobertura'
    summaryFileLocation: '$(Build.SourcesDirectory)/**/coverage.cobertura.xml'
...