Coverlet lcov.info файл, не созданный для основного проекта dotnet

#.net-core #visual-studio-code #code-coverage #lcov #coverlet

#.net-core #visual-studio-code #code-покрытие #lcov #coverlet

Вопрос:

Я работаю над проектом ядра dotnet с кодом VS на компьютере Linux.

следующий ниже блог для создания отчета о покрытии: https://www.hanselman.com/blog/AutomaticUnitTestingInNETCorePlusCodeCoverageInVisualStudioCode.aspx

как уже упоминалось, я передаю тестовые аргументы dotnet, как показано ниже:

 dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=lcov /p:CoverletOutput=./lcov.info
  

и ожидая lcov.info файл должен быть сгенерирован, но этого не происходит.

я что-то здесь упускаю?

ps: у меня этот пакет уже включен

  <PackageReference Include="coverlet.collector" Version="1.3.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
  

Ответ №1:

Я использую, чтобы иметь точную проблему. Руководство Хансельмана никогда явно не указывает читателю, что пакет coverlet.msbuild должен инструктировать .NET для сбора покрытия кода с использованием /p: синтаксиса. Включить coverlet.msbuild в тестовый проект, выполнив следующую команду внутри папки тестового проекта:

 dotnet add package coverlet.msbuild
  

Файл тестового проекта *.csproj должен содержать инструкцию, аналогичную следующей:

 <PackageReference Include="coverlet.msbuild" Version="2.9.0"
    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    <PrivateAssets>all</PrivateAssets>
</PackageReference>
  

С этим исправлением расширение желобов покрытия VSCode работает для меня «из коробки», когда я запускаю ту же команду, что и вы опубликовали.