Сбор покрытия кода с помощью теста do tnet на конвейере azure devops yaml - PullRequest
0 голосов
/ 25 марта 2020

Я перепробовал все, что смог найти, чтобы понять это.

У меня есть несколько fre sh. net core 3.1 или. net стандартных 2 проектов, основанных на Azure Услуги DevOps. Я пытаюсь настроить покрытие кода для этих проектов, и у меня ничего не получается.

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

3/24/20 3:39 [jgust] [portChangesFromAggregateRepo ≡]
>: dotnet test .\Common.UnitTests\ --collect:"Code coverage"
Test run for C:\src\bio\lib\Common\src\Common.UnitTests\bin\Debug\netcoreapp2.2\Common.UnitTests.dll(.NETCoreApp,Version=v2.2)
Microsoft (R) Test Execution Command Line Tool Version 16.3.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...

A total of 1 test files matched the specified pattern.

Attachments:
  C:\src\bio\lib\Common\src\Common.UnitTests\TestResults\74f826e4-4a46-46dd-9fe5-7fd17b8cee1c\2020-03-24.15_40_28.coverage
Test Run Successful.
Total tests: 794
     Passed: 794
 Total time: 19.3390 Seconds

Однако при запуске этого проекта в Azure DevOps сборка сообщает, что сборщик не найден.

A total of 1 test files matched the specified pattern.
Data collection : Could not find data collector 'Code coverage'
Results File: d:\a\_temp\VssAdministrator_fv-az130_2020-03-24_20_53_07.trx

Test Run Successful.
Total tests: 794
     Passed: 794

Задача конвейера для этого выглядит следующим образом:

enter image description here

и да, я использую windows платформу здесь

enter image description here

Чего мне не хватает о настройке сбора покрытия кода для этих проектов.

Насколько я могу судить, я выношу все прямо из книги

Также я использую описанную версию пакета:

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />

1 Ответ

0 голосов
/ 25 марта 2020

Вы должны указать путь к файлам csproj вашего тестового проекта в Path to project(s) и убедиться, что ссылка на тестовый проект Microsoft. NET .Test.SDK версия 15.8.0 или выше

Хотя при указании путей к файлам .dll будет включена команда dotnet test в задаче для запуска тестов, она не позволит собирать данные покрытия. Для этой операции требуются пути к .csproj файлам.

Попробуйте использовать $(System.DefaultWorkingDirectory)\**\*${{ parameters.slnName }}*[T|t]est*.csproj

Примечание: эта спецификация должна сделать отрицания устаревшими.

...