Проверка состояния покрытия кода Azure DevOps не должна включать сторонние библиотеки DLL

Мой конвейер yaml Azure Devops содержит следующее:

stages:
- stage: 'Build'
  displayName: 'Build, Test, Publish'
  jobs:
  - job: build
    displayName: Build
    steps:

    - task: NuGetAuthenticate@1 # needed to authenticate for private NuGet feed

    - script: |
        dotnet build --configuration Release

    - task: DotNetCoreCLI@2
      displayName: Test
      inputs:
        command: test
        projects: '**/*[Tt]ests/*.csproj'
        arguments: '--configuration release --collect "Code coverage" --no-build'

Это автоматически добавляет проверку статуса покрытия кода в мои запросы на включение.

Однако разочаровывает то, что показатель покрытия включает сторонние библиотеки DLL из NuGet, из-за чего покрытие моего кода кажется низким:

  • Как я могу заставить его сообщать только о покрытии моего кода?
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Боюсь, что проверка статуса покрытия кода в запросе на включение не будет автоматически исключать сторонние библиотеки.

Проверка состояния покрытия кода в запросе на включение будет полностью отражать результаты покрытия кода в соответствующем конвейере.

Как я могу заставить его сообщать только о покрытии моего кода?

Чтобы удовлетворить ваши требования, вы можете добавить файл .runsettings в свой проект и использовать его для исключения библиотек Microsoft DLL при сборе покрытия кода в тестовой задаче dotnet.

Вот пример:

<?xml version = "1.0" encoding = "utf-8" ?>
<RunSettings>
  <DataCollectionRunSettings>
     <DataCollectors>
      <DataCollector friendlyName = "Code Coverage">
        <Configuration>
          <CodeCoverage>
            <ModulePaths>
              <Exclude>
                <CompanyName>.*microsoft.*</CompanyName>
              </Exclude>
            </ModulePaths>
          </CodeCoverage>
        </Configuration>
      </DataCollector>
   </DataCollectors>
  </DataCollectionRunSettings>
</RunSettings>

Когда вы используете тестовую задачу dotnet, вы можете добавить аргумент: --settings filename.runsettings

Например:

- task: DotNetCoreCLI@2
  displayName: Test
  inputs:
    command: test
    projects: '**/*[Tt]ests/*.csproj'
    arguments: '--configuration release --collect "Code coverage" --settings filename.runsettings  --no-build'

В этом случае из результата покрытия кода в Pipeline будут исключены библиотеки DLL третьих сторон, а при проверке состояния покрытия кода будет получен отчет, который не содержит библиотеки DLL третьих сторон.

Для получения более подробной информации вы можете обратиться к этому документу: Настройка анализа покрытия кода

Другие вопросы по теме

Как получить доступ к защищенной переменной в свойстве условия задачи Powershell в конвейере Azure
Сценарии драматурга не выполняются в Azure DevOps
Использование SonarCloudAnalyze@2 вместо SonarCloudAnalyze@1 с 403 ошибками в интерфейсе командной строки Sonar Scanner после обновления V6
Аутентификация необходима при запуске сценариев Powershell из конвейера Azure, но не при запуске Azure CLI
Пул агентов Azure DevOps: как мне запросить определенную возможность Net Framework SDK?
Служба приложений Azure для Django не работает с Azure Devops Pipeline
Могу ли я иметь собственный локальный сервер агента сборки в Azure Devops с возможностью перехода в облако?
Ошибка настройки агента DevOps TF400813: пользователь «пользователь» не имеет прав на доступ к этому ресурсу. Не удалось подключиться. Попробуйте еще раз или нажмите Ctrl-C, чтобы выйти
Azure Devops REST API — публикуйте артефакты сборки из локального хранилища
Способ запуска сценария bash перед перехватом перед развертыванием с помощью безагентного сервера в Azure Devops