Ошибка при запуске модульных тестов на 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.

Более подробно проверьте покрывало-покрытие / покрывало.

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