asp.net-core - NET Core 3.1的Azure DevOps代码覆盖率

标签 asp.net-core azure-devops yaml devops azure-devops-yaml

我正在为ASP.NET Core 3.1应用程序设置一个Azure DevOps管道,并且我具有以下YAML定义测试段,用于构建,测试和代码覆盖。

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

      - task: DotNetCoreCLI@2
        displayName: "dotnet test"
        inputs:
          command: 'test'
          projects: '**/*[Tt]ests'
          arguments: '--no-build --configuration $(buildConfiguration) /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:CoverletOutput=$(System.DefaultWorkingDirectory)/TestResults/Coverage'
          testRunTitle: 'Unit Test'
          workingDirectory: '$(System.DefaultWorkingDirectory)'
      - script: reportgenerator -reports:$(System.DefaultWorkingDirectory)/**/cobertura/coverage.xml -targetdir:$(System.DefaultWorkingDirectory)/CodeCoverage -reporttypes:HtmlInLine_AzurePipelines
        displayName: "create code coverage report"


      - task: PublishCodeCoverageResults@1
        displayName: "publish test coverage result"
        inputs:
          codeCoverageTool: 'Cobertura'
          summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/cobertura/coverage.xml'

在Azure DevOps中运行时,出现以下错误
Error message from Azure DevOps

我可能做错了什么?
项目来源:GitHub

最佳答案

最终,它在Microsoft MVP的帮助下工作。共享有效的测试段中的代码。

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

      - script: dotnet test WebApp.Web.Tests/WebApp.Web.Tests.csproj --logger "trx;LogFileName=testresults.trx" /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:CoverletOutput=$(Build.SourcesDirectory)/TestResults/Coverage/
        displayName: 'dotnet test'

      - script: reportgenerator "-reports:$(Build.SourcesDirectory)/TestResults/Coverage/coverage.cobertura.xml" "-targetDir:$(Build.SourcesDirectory)/TestResults/Coverage/Reports" -tag:$(Build.BuildNumber) -reportTypes:htmlInline
        workingDirectory: $(Build.SourcesDirectory)/WebApp.Web.Tests
        displayName: 'dotnet reportgenerator'
      - task: PublishTestResults@2
        inputs:
          testRunner: VSTest
          testResultsFiles: '**/*.trx'
          failTaskOnFailedTests: true

      - task: PublishCodeCoverageResults@1
        inputs:
          codeCoverageTool: 'cobertura'
          summaryFileLocation: $(Build.SourcesDirectory)/TestResults/Coverage/**/coverage.cobertura.xml
          reportDirectory: $(Build.SourcesDirectory)/TestResults/Coverage/Reports
          failIfCoverageEmpty: false 

可以找到帮助的资源here

关于asp.net-core - NET Core 3.1的Azure DevOps代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60893419/

相关文章:

c# - 建议使用 webapplicationbuilder.configuration 而不是 configureappconfiguration

c# - ASP.NET Core MVC 中的 HttpContext.Timestamp 在哪里?

asp.net-core - 在 .Net Core WebAPI 上强制执行强制请求 header ?

yaml - 是否有任何简化的 YAML 格式变得普遍?

asp.net-mvc - .NET Core 反射 - 如何在 ASP.NET Core 3 Razor View 中查找属性的引用?

azure - 如果任务中报告任何错误,如何使 Azure 管道失败

Azure DevOps 发布管道变量值未更新

jasmine - Protractor Jasmine Reporter + BDD + Azure DevOps

php - 如何保护 symfony2 中除登录页面之外的整个页面?

vim - 如何在 VIM 中折叠 YAML 项目?