Ошибка при запуске модульных тестов на azure DevOps с помощью Nugget coverlet.msbuild / 2.3.1
Когда я запускаю тестовую задачу dotnet, тесты выполняются правильно, но при создании файла отчета в формате xml я получаю следующую ошибку:
/home/adminuser/.nuget/packages/coverlet.msbuild/2.3.1/build/netstandard2.0/coverlet.msbuild.targets(17,5): ошибка: Метод не найден: 'Void System.IO.FileStream..ctor(System.String, System.IO.FileMode, System.IO.FileAccess, System.IO.FileShare)'.
Файл конфигурации проекта (.csproj) выглядит следующим образом:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.msbuild" Version="2.3.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />
<PackageReference Include="MSTest.TestAdapter" Version="2.1.2" />
<PackageReference Include="MSTest.TestFramework" Version="2.1.2" />
<PackageReference Include="NSubstitute" Version="4.2.2" />
</ItemGroup>
</Project>
Примечание: конвейер работал нормально, но время от времени он начинал генерировать следующую ошибку
1 ответ
Вы используете автономный агент для запуска конвейера, поэтому команда должна выполняться в вашей локальной среде. Вы можете попробовать следующие шаги, чтобы решить проблему:
1.Очистите кеш пакетов, удалитеbin and obj folder
и снова запустите команду dotnet test.
2. обновление coverlet.msbuild
пакет с 2.3.1 до последней версии 2.9.0.
К тому же:
Для создания отчета в формате xml (extension.cobertura.xml): вы должны использовать coverlet.collector
пакет с командой dotnet test --collect:"XPlat Code Coverage"
.
Чтобы сгенерировать отчет json (охват.json): вы должны использовать coverlet.msbuild
пакет с командой dotnet test /p:CollectCoverage=true
.
Более подробно проверьте покрывало-покрытие / покрывало.