3

我有一个 .Net Core 应用程序,其中包含一个 .Net Standard 2.1 项目。我正在使用 Coverlet 来获取 Cobertura 格式的代码覆盖率。

我在所有测试项目中都使用“coverlet.msbuild”nuget 包。

我想在程序集级别添加 [ExcludeFromCodeCoverage] 属性,以便 Coverlet 在执行分析时忽略此项目。

我在 .Net Core / .Net Standard 项目中找不到 AssemblyInfo.cs 文件。

我尝试在 proejct 的 .csproj 文件中添加以下标签

  <ItemGroup>
     <AssemblyAttribute Include="System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute" />
  </ItemGroup>

但仍然没有运气。

对我来说唯一的解决方法是在所有类文件中手动添加 [ExcludeFromCodeCoverage] 属性,这不是最好的方法。

4

1 回答 1

0

这适用于 .NET 6。我怀疑它适用于 .NET Core 3.1+

将以下内容添加到 csproj 文件中

    <ItemGroup>
        <AssemblyAttribute Include="System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage" />
    </ItemGroup>

或者在程序集的项目中的任何文件中

using System.Diagnostics.CodeAnalysis;

[assembly: ExcludeFromCodeCoverage]
于 2022-02-08T14:34:07.240 回答