как использовать команду Dotnet dotcover test --dcFilters, чтобы исключить определенные пространства имен из охвата кода

Я использую тестовую команду dotnet dotcover в своем gitlab-ci.yml, чтобы получить покрытие кода. Я включил dotcover dotnetclitool версии 2020.3.3 в свое решение для модульных тестов, чтобы эта команда выполнялась на этапе тестирования конвейера. Но я не могу успешно исключить определенные классы (в определенном пространстве имен/папке) из результатов покрытия кода. Моя структура решения выглядит следующим образом:

  1. source folder
    • AClient.Repository.csproj
      • Папка расширений

        AClientExt.cs

      • #P4#
        #P5#
        #P6#
      • #P7#
        #P8#
        #P9#
  2. tests folder
    • AClient.Repository.UnitTests.csproj
      • RepositoryTests

        RepoATests.cs

Теперь покрытие кода включает оба решения, и я хочу исключить следующие пространства имен:

AClient.Repository.Extensions.*
AClient.Repository.Models.*
AClient.Repository.Tests.*

Я запускаю эту команду, и она не может правильно исключить фильтры, поэтому может кто-нибудь помочь мне выяснить правильное использование dcFilters: покрытие кода


person Pooja Arya    schedule 25.02.2021    source источник


Ответы (1)


Я, наконец, решил это так:

run-testCoverage:
  stage: dotnet-test
  image: mcr.microsoft.com/dotnet/core/sdk:3.1
  before_script:
    - cd tests/AClient.Repository.UnitTests
  script:
    - dotnet restore -v d
    - dotnet dotcover test --dcReportType=HTML --dcOutput=../../coverage/AppCoverageReport.html --dcFilters="+:AClient.Repository;-:type=AClient.Repository.Extensions.*;-:type=AClient.Repository.Models.*;-:type=AClient.Repository.UnitTests"

Это ответ, который мне помог: https://stackoverflow.com/a/6208644/11731377

person Pooja Arya    schedule 29.03.2021