在 Azure 管道上使用 VSTest 和报告生成器工具生成测试覆盖率时如何忽略某些文件

Quy*_*yết 5 asp.net azure vstest azure-pipelines

我有一个问题未能解决。

我有一个 .NET Core 项目,想要运行测试并在 Azure Pipelines 上发布测试覆盖率。

问题是:我正在使用 EF 生成迁移文件。我想在测试中忽略这些文件,但我不能。

有人如何向管道命令添加一些参数来忽略这些文件?像--排除 迁移/*.cs

这是我的 azure-pipelines.yaml 中的工作

- job: Testing
  steps:
    - task: UseDotNet@2
      displayName: 'Use .Net Core sdk 3.1.x'
      inputs:
        version: 3.1.x

    - task: DotNetCoreCLI@2
      inputs:
        command: 'test'
        projects: '$(build.sourcesDirectory)/tests/*Tests/*.csproj'
        arguments: -c $(BuildConfiguration) --logger trx --collect:"XPlat Code Coverage" --settings:$(build.sourcesDirectory)/src/test.runsettings -- RunConfiguration.DisableAppDomain=true
      displayName: 'run 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
Run Code Online (Sandbox Code Playgroud)

Hen*_*ous 10

您可能正在寻找-classfilters-filefiltershttps://github.com/danielpalme/ReportGenerator

-classfilter我这样使用,其中Foo.Bar.*Foo.Baz.*是我想在报告中排除的命名空间:

variables:
  ...

  classes-to-exclude-from-coverage: "-Foo.Bar.*;-Foo.Baz.*"

  ...

- script: ./reportgenerator -reports:$(Agent.TempDirectory)/**/coverage.cobertura.xml -targetdir:$(Build.SourcesDirectory)/coverlet/reports -reporttypes:"HtmlInline_AzurePipelines;Cobertura;Badges" -assemblyfilters:"-xunit*;" -classfilters:'$(classes-to-exclude-from-coverage)'
  displayName: Create reports


Run Code Online (Sandbox Code Playgroud)