dotCover 最新变化

本页将介绍 dotCover 近期版本中的更新。 亮点包括更多代码覆盖高亮显示选项,连续测试可以更快获得单元测试反馈,以及对 Visual Studio/JetBrains Rider 和 .NET Core 的支持。

下载

可免费试用 30 天

对 MAUI 应用程序的支持

对 MAUI 应用程序的支持 2024.1

现在,您可以对基于 MAUI 框架的单元测试和应用程序执行覆盖率分析。 目前,dotCover 仅支持 Windows 上以 .NET 7.0+ 为目标的 WinUI 桌面应用程序。 这适用于独立 dotCover 以及 ReSharper 和 Rider 中的 dotCover。

改进的覆盖高亮显示

改进的覆盖高亮显示 2024.1

Rider 和 ReSharper 中的 dotCover 获得了改进的代码高亮显示:包括新的背景颜色、用于部分覆盖代码行的新装订区域图标,以及其他细微更改。

改进的命令行工具

改进的命令行工具 2023.3

dotCover 命令行工具现在作为跨平台框架相关的 .NET 工具提供。

此工具作为 CI/CD 场景的默认解决方案,并取代以前的解决方案

持续测试的快捷键 2023.1

现在,可以使用快捷键直接触发持续测试。 此前,只能通过构建或保存项目来间接执行此操作。 这项功能在带有 ReSharper 的 Visual Studio 和 JetBrains Rider 中均可使用。

对 Windows ARM64 的支持 2022.3

现在,您可以在 ARM64 CPU 版本的 Windows 上使用 dotCover。 这适用于所有版本:独立版 dotCover、Rider 中的 dotCover、Visual Studio 中的 dotCover 和 dotCover 控制台运行器。

对 Linux ARM32 的支持 2022.3

您现在可以在 ARM32 CPU 版本的 Linux 上使用 dotCover 控制台运行程序。 支持的框架为 .NET Core 3.1 和 .NET 5.0–7.0。

在 JetBrains Rider 中更轻松地导航到测试

在 JetBrains Rider 中更轻松地导航到测试 2022.3

我们已将 Show Covering Tests(显示覆盖测试)操作添加到代码编辑器和 Unit Test Coverage(单元测试覆盖)窗口中的 dotCover 上下文菜单。 此操作会显示一个弹出窗口,其中所有覆盖测试都在同一位置。 弹出窗口还允许您创建新的覆盖会话。

更快的卷影复制 2022.3

现在,dotCover 仅复制 Visual Studio 和 JetBrains Rider 中持续测试所需的程序集和符号文件。 这提高了 dotCover 的整体性能,特别是在大型项目中,因为它不再需要复制整个工作目录。 如有必要,您可以在 dotCover 设置中调整卷影复制文件筛选器。

改进了 JetBrains Rider 中的 Unity 支持 2022.3

以前,要分析 Unity 测试的覆盖率,您必须重启 Unity 并启用覆盖率支持。 从此版本开始,不再需要重新启动 Unity,并且测试覆盖率开箱即受支持。

在 JetBrains Rider 中快速查看覆盖结果

在 JetBrains Rider 中快速查看覆盖结果 2022.2

您可以使用盾牌图标快速查看已打开文件的覆盖结果。 点击图标将在未覆盖的语句之间导航。

对基于 musl 的 Linux 发行版的支持 2022.1

dotCover 命令行运行程序现在支持 Alpine 版本 3.13–3.15。 支持以下 CPU 和框架:

  • x64:.NET Core 3.1、.NET 5.0–6.0。
  • arm64:.NET 5.0–6.0。

新的覆盖率报告类型 2022.1

我们正在添加包含逐个测试覆盖率信息的新报告类型:FileCoverageXmlDetailedFileCoverageXmlFileCoverageJsonDetailedFileCoverageJson

新报告包括三个部分:

  • Files,包括所覆盖源代码文件的信息。 详细报告还提供各文件所覆盖范围的信息。
  • TestLists,提供按测试集聚合的测试的信息。
  • Tests,包括每个测试的详细信息。
使用注释从覆盖率分析中排除代码

使用注释从覆盖率分析中排除代码 2022.1

您现在可以使用注释从覆盖率分析中排除某些行或代码块。 可用选项:

// dotcover disable
var i = 1;
var j = 10;
// dotcover enable

/* dotcover disable */ var i = 1; /* dotcover enable */

var i = 1; // dotCover disable this line

// dotcover disable next line
var j = 100;

要使某一选项起作用,必须引用 JetBrains.dotCover.MSBuild NuGet 软件包。 这是一个仅用于开发的依赖项,不会作为运行时依赖项添加到项目中。

性能改进 2022.1

我们改进了覆盖率数据的后处理。 例如,控制台运行程序 (IncludePerTest=true) 生成报告所需的时间要少得多。

对 Apple 芯片处理器的支持 2021.3

dotCover 命令行运行程序现在可以在配备 Apple 芯片处理器的计算机上运行。 它可以为 .NET 6 应用程序(原生模式)和 .NET 5 应用程序(Rosetta 2 模式)提供覆盖率分析。

代码覆盖率的 Code Vision 指标

代码覆盖率的 Code Vision 指标 2021.3

新的 Code Vision 指标已添加到 Rider 中的 dotCover。 dotCover 会针对一组测试中包含的每个类型成员显示成功和失败测试的数量。 您还可以使用 Code Vision 通知运行、覆盖和调试测试。

改进了 dotCover .NET 全局工具 2021.3

dotCover .NET 全局工具现在包括 mergereport 命令。

性能改进 2021.3

我们改进了 dotCover 命令行运行程序的性能,加快了覆盖率分析。

控制台运行程序中个别测试的覆盖率信息

控制台运行程序中个别测试的覆盖率信息 2021.2

dotCover 控制台运行程序能够收集个别测试的覆盖率信息,并显示在生成的报告中。 目前,仅支持以下测试运行程序:dotnet testdotnet vstestvstest.console.exe。 例如:dotCover.exe dotnet --output=AppCoverageReport.xml --reportType=XML --IncludePerTestInfo=Method -- test "C:\MyProject\MainTests.csproj"

改进了覆盖性能

改进了覆盖性能 2021.2

  • 现在,dotCover 可以在一个程序集中并行运行测试类的覆盖率分析。 在某些情况下,这可以加快覆盖率分析速度。
  • 现在,可以为 .NET Core 和 .NET 项目预加载单元测试运行程序(这样,由于单元测试运行程序已加载到内存中,因此可以更快地开始覆盖率分析)。
C# 8 和 C# 9 支持更新

C# 和 Unity 支持更新 2021.2

  • 我们改进了覆盖树中对 C# 8.0 和 C# 9.0 的支持(显示默认接口实现等)。
  • 现在,dotCover 将在覆盖率筛选器发生更改时主动询问是否重启 Unity 编辑器。
ReSharper 中的更新版筛选设置

ReSharper 中的更新版筛选设置 2021.1

现在,您可以在 Visual Studio 中使用 ReSharper 配置覆盖筛选器,方法与在 JetBrains Rider 中相同。

作为 .NET 全局工具的 dotCover 控制台运行程序

作为 .NET 全局工具的 dotCover 控制台运行程序 2021.1

您可以将 dotCover 控制台运行程序作为 dotnet 全局工具安装:dotnet tool install --global JetBrains.dotCover.GlobalTools --version 2021.1.0

使用它分析 .NET Core 项目和单元测试的覆盖率。

下载

可免费试用 30 天