如何在 .Net Standard 2.1 项目中的程序集级别添加 [ExcludeFromCodeCoverage] 属性

问题描述 投票:0回答:1

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

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

我想在程序集级别添加

[ExcludeFromCodeCoverage]
属性,以便 Coverlet 在执行分析时忽略此项目。

我在 .NET Core / .NET Standard 项目中找不到

AssemblyInfo.cs
文件。

我尝试在项目的

.csproj
文件中添加以下标签

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

但还是没有运气。

对我来说唯一的解决方法是在所有类文件中手动添加 thr

[ExcludeFromCodeCoverage]
属性,这不是最好的方法。

.net-core code-coverage coverlet dotnet-test
1个回答
5
投票

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

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

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

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

using System.Diagnostics.CodeAnalysis;

[assembly: ExcludeFromCodeCoverage]
© www.soinside.com 2019 - 2024. All rights reserved.