gpt4 book ai didi

azure-devops - Azure DevOps 代码覆盖率和 .coverage for PR 和 Cobertura 的完整报告

转载 作者:行者123 更新时间:2023-12-04 09:57:39 24 4
gpt4 key购买 nike

我有一个 Azure DevOps 管道 validates pull requests .我有 configured dotnet test使用 --collect "Code coverage" 收集代码覆盖率指标争论:

- task: DotNetCoreCLI@2
displayName: dotnet test
inputs:
command: 'test'
arguments: '--configuration $(BuildConfiguration) --collect "Code coverage" /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura'
workingDirectory: $(baseWorkingDirectory)
projects: 'tests/**/*.csproj'
nobuild: true

如您所见,我也路过了 /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura .为了生成覆盖率报告,我必须这样做:
- task: CmdLine@2
inputs:
script: dotnet tool install -g dotnet-reportgenerator-globaltool

- task: CmdLine@2
inputs:
script: reportgenerator -reports:$(Build.SourcesDirectory)/tests/**/coverage.cobertura.xml -targetdir:$(Build.SourcesDirectory)/CodeCoverage -reporttypes:HtmlInline_AzurePipelines;Cobertura

- task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(Build.SourcesDirectory)/CodeCoverage/Cobertura.xml'
reportDirectory: '$(Build.SourcesDirectory)/CodeCoverage'

Documentation声明 拉取请求的代码覆盖率仅适用于 Visual Studio 代码覆盖率结果格式(文件扩展名 .coverage)

所以:
  • 我必须使用 Visual Studio 代码覆盖率 --collect:"Code Coverage"获取拉取请求的代码覆盖率,因为 Cobertura 格式不起作用。
  • 我需要使用 科贝图拉 格式以获得关于 的可读报告代码覆盖率选项卡 正在准备中,但如果我使用 --collect:"Code Coverage",则不会显示 Cobertura 报告同时。

  • 似乎我无法同时获得 PR 的代码覆盖率和 Cobertura 格式的完整报告。

    Other people似乎有同样的问题,但该问题并未在该线程中解决。

    我错过了什么吗?

    最佳答案

    你可以试试用这个吗?

    您必须安装 coverlet.collector打包在您所有的测试项目中。请注意,我使用了参数 --collect:"XPlat Code Coverage" .

    # You just added coverlet.collector to use 'XPlat Code Coverage'
    - task: DotNetCoreCLI@2
    displayName: Test
    inputs:
    command: test
    projects: '**/*Tests/*.csproj'
    arguments: '--configuration $(buildConfiguration) --collect:"XPlat Code Coverage" -- RunConfiguration.DisableAppDomain=true'
    workingDirectory: $(Build.SourcesDirectory)

    - 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

    请注意,您可能有不同的文件夹结构。

    如果您想使用 Code coverage for pull requests您不应该使用 Cobertura 的功能:

    Code coverage for pull requests capability is currently only available for Visual Studio code coverage (.coverage) formats. This can be used if you publish code coverage using the Visual Studio Test task, the test verb of dotnet core task and the TRX option of the publish test results task. Support for other coverage tools and result formats will be added in future milestones.

    关于azure-devops - Azure DevOps 代码覆盖率和 .coverage for PR 和 Cobertura 的完整报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61891248/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com