JetBrains Rider 2025.1 Help

设置覆盖率过滤器

有时,您可能需要限制覆盖率分析的范围。 例如,如果您参与开发一个包含多个项目和数千个测试的大型应用程序,这样做是有意义的。 在这种情况下,您无需分析解决方案中所有项目(类型、类型成员)的覆盖率,而只需分析与您正在处理的代码相关的部分。 另一个例子是通过排除您当前不感兴趣的节点(命名空间、类或方法)来“减少覆盖率树的噪音”。 在所有这些情况下,您都应该应用覆盖率过滤器。

过滤器类型:

运行时覆盖率筛选器

JetBrains Rider 在覆盖率会话期间应用这些过滤器。 使用这些过滤器可以从分析中排除不必要的代码,并减少覆盖率会话的时间。

您可以通过 使用 JetBrains Rider 设置 或通过 向源代码添加注释 来指定运行时覆盖率过滤器。

覆盖率结果过滤器

JetBrains Rider 在覆盖率会话结束后将这些过滤器应用于覆盖率结果(覆盖率树)。 使用它们可以排除您当前不想看到的节点。 了解更多

在 JetBrains Rider 设置中指定运行时覆盖率过滤器

使用 JetBrains Rider 设置,您可以为特定的命名空间、项目、类型、类型成员或属性指定运行时覆盖率过滤器。

由于过滤器是在运行时应用的,JetBrains Rider 不会将被过滤的项目包含在覆盖率快照中,也不会在 单元测试覆盖率 窗口中显示它们。

添加运行时覆盖率过滤器

  1. 在 Rider 设置中打开过滤器设置页面: 构建、执行、部署 | dotCover | 过滤

  2. 运行时覆盖率筛选器 中,单击 添加筛选器添加 ... ,位于所需过滤规则旁边:

    • 代码分析的唯一范围 :指定要包含在覆盖率分析中的程序集、类和/或方法。 所有其他代码项将被排除。 代码项是彼此独立过滤的。 例如,您可以指定一个方法,并为程序集和类保留星号 * ,以仅包含所有程序集和所有类中具有指定名称的方法。

    • 代码分析的排除范围 :指定要从覆盖率分析中排除的程序集、类(需要完全限定名称)和/或方法的名称。 代码项是彼此独立过滤的。

    • 不分析使用特性标记的代码 :指定将用于从覆盖率分析中排除符号的类的完全限定属性名称。 例如, System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute*.ExcludeFromCodeCoverageAttribute

    在过滤器中指定代码项名称时,您可以使用星号通配符: * (星号)表示零个或多个字符。

    例如,您可以在 代码分析的排除范围 中使用 *.测试 通配符,以从代码分析中排除所有测试项目。

  3. 单击 保存 以保存过滤器设置并应用您的修改。

在源代码中指定运行时覆盖率过滤器

指定运行时覆盖率过滤器的另一种方法是向源代码添加注释。 这使您可以从覆盖率分析中排除特定部分的代码。

从覆盖率分析中排除特定代码

  1. 在您的项目中,添加对 JetBrains.dotCover.MSBuild NuGet 包的引用。 这是一个仅用于开发的依赖项,不会作为运行时依赖项包含在您的项目中。

  2. 注释您希望从分析中排除的代码。 支持以下注释:

    // dotcover disable var a = 1; var b = 10; // dotcover enable /* dotcover disable */ var c = 1; /* dotcover enable */ var d = 1; // dotCover disable this line // dotcover disable next line var e = 100;

指定覆盖率结果的过滤器

JetBrains Rider 在覆盖率会话结束后将这些过滤器应用于覆盖率结果。 使用这些筛选器以:

从覆盖率结果中排除节点(命名空间、类、类成员)

  1. 打开 单元测试覆盖率窗口

  2. 选择一个节点,并在上下文菜单中选择:

    • 从覆盖率结果中排除 以从当前结果中排除该节点。

    • 排除并创建运行时覆盖率筛选器 以从结果中排除该节点,并创建一个相应的 运行时筛选器 ,以防止在未来的覆盖率会话中收集该节点的覆盖率数据。

    • 排除除此之外的所有节点 以仅在覆盖率树中保留所选节点。

    JetBrains Rider:排除并创建覆盖率过滤器

重新显示被排除的节点

从覆盖率结果中排除文件

  1. 在 Rider 设置中,打开 构建、执行、部署 | dotCover | 过滤

  2. 找到 排除文件掩码 列表。

  3. 单击 添加筛选器 以为特定文件掩码添加新的排除筛选器。

    您可以在文件掩码中使用 Ant 风格通配符

    • ? 匹配单个字符(不包括目录分隔符)

    • * 匹配零个或多个字符(不包括目录分隔符)

    • ** 匹配任意数量的字符(包括目录分隔符)

    • /\ 匹配目录分隔符,无论操作系统路径格式如何

    例如,模式 **Test?\**.* 将匹配以下文件:

    • C:\Projects\MyTestX\data\file_one.txt

    • /home/projects/TestY/file_two.xml

    但不包括:

    • C:\Projects\Test\data\file_one.txt

    • /home/projects/TestY/file_two

最后修改日期: 2025年 6月 25日