#.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 работает для меня «из коробки», когда я запускаю ту же команду, что и вы опубликовали.