0

当我运行 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>

注意: 管道运行良好,但从前一刻到下一刻,它开始产生以下错误

4

1 回答 1

2

您正在使用自托管代理来运行管道,因此该命令应在您的本地环境中执行。您可以尝试以下步骤来解决问题:

1.清理包缓存,删除bin and obj folder并再次运行dotnet test命令。

2.将coverlet.msbuild包从2.3.1更新到最新的2.9.0。

此外:

要生成 xml 报告(coverage.cobertura.xml):您应该使用coverlet.collector带有命令的包dotnet test --collect:"XPlat Code Coverage"

要生成 json 报告(coverage.json):您应该使用coverlet.msbuild带有命令的包dotnet test /p:CollectCoverage=true

更多细节检查coverlet-coverage/coverlet

于 2020-07-29T07:43:53.697 回答