dotCover 的新增功能
dotCover 2025.2
性能改进
此版本旨在提升覆盖率性能并减少开销。 作为此项工作的组成部分,dotCover 现在专注于当前和实际使用的技术。 根据我们的统计数据,使用率较低的功能已不再受支持。
已移除运行时和框架支持
已不再支持 Mono 和 Unity。 一旦 Unity 的运行时切换到 CoreCLR,将恢复其支持。
已不再支持以下应用程序类型:
IIS Express
WCF
WinRT
外部 .NET 应用程序
Mono(所有变体)
MAUI
命令行运行器的改进与变更
统一命令:
covercover-dotnet命令已移除。 请使用dotcover cover处理所有目标类型,包括 .NET 和 .NET Core 应用程序。 如果未指定--target-executable,dotCover 将尝试自动查找适当的dotnet可执行文件。不再支持 XML 配置
CLI 工具不再支持基于 XML 的配置文件。 请改用包含命令行参数的纯文本文件:
dotcover cover @args.txt仅限 .NET 工具 — 已移除
dotcover.exeNuGet 包中不再包含独立
dotcover.exe运行器。 dotCover 命令行运行器现在只能作为 .NET 全局/本地工具启动(需 .NET 6 或更高版本)。我们减少了可用命令及其参数的数量,以聚焦于最常用的场景。 完整命令列表请参考 dotCover Console Runner Commands 页面。
覆盖过滤的变更
我们重新设计了 dotCover 中的过滤系统,聚焦于实际使用的过滤器。 由于使用率极低且维护成本较高,以下过滤器在 dotCover UI 和 CLI 运行器中均已不再受支持:
按方法和类过滤
按文件路径过滤
源代码注释过滤
dotCover 2025.1
改进的命令行工具
之前,要运行 作为 .NET 工具安装的 dotCover ,您必须使用
dotnet前缀,例如:dotnet dotcover <command>现在,您可以直接使用以下命令运行:
dotcover <command>多项小改进和错误修复。
dotCover 2024.3
多项小改进和错误修复。
dotCover 2024.2
重新设计的持续测试
我们重新设计了 Visual Studio 和 JetBrains Rider 中的持续测试,以提高可用性:
之前:任何单元测试会话都可以转换为持续测试会话,这可能会导致多个会话的混淆。
现在:有一个单独的 持续测试会话。 此更改使您更容易管理和理解测试工作流。
持续测试指示器
JetBrains Rider 和 ReSharper 获得了一个新的持续测试图标/指示器。 该图标显示当前的测试状态,包括是否有失败的测试。 此外,它还提供了几个快速操作:启用/禁用持续测试、查看覆盖率结果、切换代码高亮等。
可调节的高亮颜色
现在,您可以调整用于在编辑器中高亮代码覆盖率的颜色。 这些颜色应用于边距和行背景中的覆盖标记。 该功能目前仅在 JetBrains Rider 中可用。
小幅稳定性改进和错误修复。
dotCover 2024.1
支持 MAUI 应用程序
现在,您可以对基于 MAUI 框架的单元测试和应用程序执行覆盖率分析。 目前,dotCover 仅支持在 Windows 上针对 .NET 7.0+ 的 WinUI 桌面应用程序。 这适用于独立版 dotCover 以及 ReSharper 和 Rider 中的 dotCover。
改进的覆盖率高亮显示
Rider 和 ReSharper 中的 dotCover 获得了改进的代码高亮显示:新的背景颜色、部分覆盖代码行的新边距图标以及其他一些小改动。
dotCover 2023.3
改进的命令行工具
dotCover 命令行工具现在作为跨平台的框架依赖 .NET 工具提供: https://www.nuget.org/packages/JetBrains.dotCover.CommandLineTools/2023.3.0
此工具作为 CI/CD 场景的默认解决方案,并取代了之前的 https://www.nuget.org/packages/JetBrains.dotCover.GlobalTool
dotCover 2023.2
错误修复和稳定性改进。
dotCover 2023.1
现在,您可以通过应用快捷键直接触发持续测试。 之前,您只能通过构建或保存项目间接实现这一点。 此功能适用于带有 ReSharper 的 Visual Studio 和 JetBrains Rider。
dotCover 2022.3
.NET 7 支持
dotCover 现在允许您在 Windows、macOS 和 Linux 上对 .NET 7 应用程序执行覆盖率分析。
改进的 ARM CPU 支持
Linux arm32 – 现在,您可以在 Linux 上的 arm32 CPU 上运行 dotCover 控制台运行器。 支持的框架:.NET Core 3.1、.NET 5.0-7.0。
Windows arm64 – 现在,您可以在 Windows 上的 arm64 CPU 上使用 dotCover。 这适用于所有版本:独立版 dotCover、Rider 中的 dotCover、Visual Studio 中的 dotCover,以及 dotCover 控制台运行器。
JetBrains Rider 中 dotCover 的改进 Unity 支持
之前,要分析 Unity 测试的覆盖率,您必须重新启动启用了覆盖支持的 Unity。 从此版本开始,无需重新启动 Unity,测试覆盖率开箱即用。
各种改进
在 JetBrains Rider 中更轻松地导航到测试:我们在代码编辑器的 dotCover 上下文菜单和 单元测试覆盖率 窗口中添加了 显示覆盖的测试 操作。 该操作会在当前位置显示包含所有覆盖测试的弹出窗口。 弹出窗口还允许您创建新的覆盖会话。
在 Visual Studio 和 JetBrains Rider 中更快的影子复制:现在,dotCover 仅复制持续测试所需的程序集和符号文件。 这提高了整体性能,尤其是在大型项目中,因为 dotCover 不再需要复制整个工作目录。 如果需要,您可以在 dotCover 设置中调整影子复制文件过滤器。
dotCover 2022.2
现在,您可以通过查看“盾牌”图标快速查看当前打开文件的覆盖率结果。 点击图标可引导您浏览未覆盖的语句。
dotCover 2022.1
使用注释从覆盖率分析中排除代码
现在,您可以使用注释将某些代码行或代码块从覆盖率分析中排除。
我们正在添加包含每个测试覆盖信息的新报告类型:FileCoverageXml、DetailedFileCoverageXml、FileCoverageJson 和 DetailedFileCoverageJson。
新报告包括三个部分:
Files,其中包含有关已覆盖源代码文件的信息。 详细报告还提供每个文件的覆盖范围信息。TestLists,其中提供按测试集聚合的测试信息。Tests,其中包含有关每个测试的详细信息。
性能改进
我们改进了覆盖率数据的后处理。 例如,控制台运行器(使用
IncludePerTest=true)生成报告所需的时间显著减少。
dotCover 2021.3
.NET 6 支持
dotCover 允许您对以 .NET 6 为目标的应用程序执行覆盖率分析。
支持 Apple M1
现在,dotCover 命令行运行器可以在配备 Apple M1 处理器的计算机上运行。 该工具支持对 .NET 6 应用程序(原生模式)和 .NET 5 应用程序(Rosetta 2 模式)的覆盖率分析。
代码覆盖率的 Code Vision 指标
Rider 中的 dotCover 添加了新的 Code Vision 指标。 对于每个通过测试覆盖的类型成员,dotCover 显示成功和失败测试的数量。 您还可以使用 Code Vision 通知来运行、覆盖和调试测试。
改进的 dotCover .NET 全局工具
dotCover .NET 全局工具现在支持
merge和report命令。性能改进
我们改进了 dotCover 命令行运行器的性能,从而加快了覆盖率分析。
dotCover 2021.2
dotCover 控制台运行器能够收集单个测试的覆盖信息,并在生成的报告中显示。 目前,仅支持以下测试运行器:
dotnet test、dotnet vstest、vstest.console.exe。 例如:dotCover.exe dotnet --output=AppCoverageReport.xml --reportType=XML --IncludePerTestInfo=Method -- test "C:\MyProject\MainTests.csproj"现在,dotCover 可以在一个程序集内并行运行测试类的覆盖率分析。 在某些情况下,这可能会加快覆盖率分析。 您可以通过 dotCover 设置中的 并行运行测试类 复选框启用此功能。
现在,.NET Core 和 .NET 项目支持单元测试运行器的预加载(这使得覆盖率分析启动更快,因为单元测试运行器已加载到内存中)。 您可以通过 dotCover 设置中的 预加载测试运行器 复选框启用此功能。
各种改进
改进了覆盖树中对 C# 8.0 和 C# 9.0 的支持(显示默认接口实现等)。
现在,如果更改了覆盖过滤器,dotCover 提供重新启动 Unity 编辑器的选项。
各种错误修复。
dotCover 2021.1
现在,您可以在 Visual Studio 中以与 Rider 相同的方式配置覆盖过滤器。
作为 .NET 全局工具的 dotCover 控制台运行器
现在,您可以将 dotCover 控制台运行器安装为 dotnet 全局工具:
dotnet tool install --global JetBrains.dotCover.GlobalTools --version 2021.1.0用于分析 .NET Core 项目和单元测试的覆盖率。通过新的 UI,更容易配置和运行覆盖率分析会话。
dotCover 2020.3
.NET 5 支持
dotCover 允许您对以 .NET 5 为目标的应用程序执行覆盖率分析。
改进的持续测试。
现在,您可以优化在触发持续测试会话时应构建的项目。 这可以加快持续测试会话的速度。 此功能适用于 Visual Studio和 Rider。
改进了对以多个框架为目标的项目的支持。
现在, Visual Studio 和 Rider 中的单元测试覆盖窗口允许您按目标框架筛选覆盖结果。
覆盖树中显示具有过时覆盖信息的方法。
在 2020.3 之前,具有过时覆盖信息的方法仅在边距中用标记高亮显示。 现在,在 Visual Studio 中,具有过时覆盖信息的方法也会在 单元测试覆盖窗口中高亮显示。
解决方案高亮级别选项中的代码覆盖率。
现在,您可以使用 Rider 的解决方案高亮级别选项来打开和关闭代码覆盖率高亮显示。
dotCover 2020.2
单元测试覆盖率 窗口中的改进在 Rider中:
您可以从此窗口导出覆盖报告。
您可以在此窗口中执行快速搜索。
您可以从代码中的符号导航到覆盖树中的该符号。
--reportype=SummaryXml参数允许您创建一个新的摘要报告类型,其中包括有关总共覆盖了多少类、方法和语句的数据。现在,运行器可以一次生成多种类型的报告:
--reporttype=HTML,SummaryXml --output=report.html;summary.xml适用于 Linux(任何带有 GLIBC_2.23 或更高版本的发行版)的运行器现在能够在 ARM64 系统上执行分析。
dotCover 2020.1
现在,您可以在 JetBrains Rider 中同时应用运行时过滤器和覆盖结果过滤器。
从 命令行访问源代码文件
在控制台运行器中,所有覆盖命令都获得了两个附加参数:
--SourcesSearchPaths和--AllowSourceServersAccess。 它们允许您分别指定源代码的自定义路径和从源服务器下载源代码。
dotCover 2019.3
支持 Windows、macOS 和 Linux 上的 Unity
JetBrains Rider 中的 dotCover 支持对 Unity 项目中的测试进行覆盖率分析。
支持 Microsoft Fakes
dotCover 能够分析使用 Microsoft Fakes 的测试的覆盖率。 请注意,Microsoft Fakes 不仅在 Visual Studio(2017 或更高版本)中的 dotCover 中受支持,还在 dotCover 命令行工具中受支持。 在后者的情况下,您应该使用
vstest.console.exe(来自 Visual Studio 2017 或更高版本)运行测试。dotCover 能够在 Rider、Visual Studio 和由 dotCover 控制台工具生成的报告中按嵌套命名空间分组覆盖结果。
dotCover 2019.2
支持 Windows、macOS 和 Linux 上的 Mono。
dotCover 2019.2 支持 Windows、macOS 和 Linux 上的 Mono 5.10 及更高版本。 要在这些操作系统上执行覆盖率分析,您必须使用 JetBrains Rider或 dotCover 控制台运行器。 请注意,在 macOS 和 Linux 上仅支持 64 位进程。
Linux 和 macOS 上的控制台运行器。
现在,您可以在 macOS 和 Linux 上使用 dotCover 控制台运行器 ,而不仅仅是在 Windows 上。 为了在新平台上更方便,该工具接受 Unix 风格语法的命令参数。 例如,现在,
/TargetExecutable=MyApp.exe和--targetexecutable:MyApp.exe都是有效的。控制台运行器改进。
控制台运行器获得了两个新命令,以简化 .NET Core 和 Mono 应用程序及单元测试的覆盖率分析:
cover-dotnet和cover-mono。修复了 0% 覆盖率和 .NET Core 单元测试的问题。 dotnet dotCover test 的解决方法不再需要,但如果您觉得这种运行覆盖率分析的方式更方便,仍然可以使用它。
dotCover 2019.1
支持 macOS 和 Linux 上的 .NET Core 单元测试。 要在这些操作系统上执行代码覆盖率分析,您必须使用 JetBrains Rider。
Visual Studio 中的远程覆盖率不再可用。 该功能已从 dotCover 中移除。
dotCover 2018.3
dotCover 2018.2
JetBrains Rider 集成。 除了 Visual Studio,现在 dotCover 也是 JetBrains Rider IDE 的一部分。 在此版本中,支持两个主要功能:单元测试的代码覆盖率分析和持续测试。
支持
dotnet控制台工具。 现在,dotCover 命令行运行器可以作为 .NET 命令行工具(dotnet.exe)的扩展使用。 例如,您可以通过运行dotnet dotCover test来运行单元测试的覆盖率分析。现在,当使用 dotCover.exe 控制台运行器时,您应始终优先选择
cover命令,而不是analyze命令。 覆盖结果仅取决于--ReportType参数:如果指定了,您将获得某种类型的报告;如果未指定,将保存常规覆盖快照。
dotCover 2018.1
不再需要单独的 持续测试会话 - 持续测试模式可以为任何单元测试会话启用。
新的持续测试 自动启动模式。
覆盖信息现在显示在单独的 单元测试覆盖窗口中,而不是每个会话的 覆盖 选项卡中。 在一个地方查看所有单元测试会话的聚合覆盖数据。
dotCover 控制台运行器获得了覆盖任意托管进程和服务的能力
analyze-everything、analyze-service,并向控制台工具的运行实例发送获取覆盖快照命令。 这极大地简化了 获取在 IIS/IIS Express 上运行的 Web 应用程序的覆盖率。
dotCover 2017.3
在持续测试模式下支持 NUnit 和 xUnit 的 .NET Core 测试覆盖率。
快速评估覆盖结果 。Visual Studio 编辑器边距中的“盾牌”图标允许您快速查看总覆盖率百分比和失败测试的数量。 点击图标会引导您浏览未覆盖的语句。
改进的“显示覆盖语句”。 现在,在编辑器中使用 显示覆盖的测试 后,弹出窗口会告诉您这些测试覆盖了代码的具体部分:类、方法或特定语句。
dotCover 2017.2
支持 MSTest 的 .NET Core 测试覆盖率。
改进的性能。 在 2017.2 之前,在大型解决方案上使用持续测试是一件 真正的麻烦事 :尽管测试执行速度非常快,但后续的覆盖率会话可能需要几分钟才能完成。 在 dotCover 2017.2 中,这个问题不复存在:由于新的快照格式,dotCover 提供了更快的覆盖率结果处理。
覆盖率结果现在不仅显示特定测试,还显示测试组、项目、类别等。
色盲标记。 现在,标记不仅可以通过颜色,还可以通过形状来指示覆盖率和测试结果。
从快照中添加覆盖率数据。 现在,在查看特定 单元测试会话的覆盖率结果时,您可以将其与快照中的覆盖率数据合并。
dotCover 2017.1
使用彩色背景高亮显示。 由于新的高亮样式(使用标记)可能并不适合所有用例,我们添加了一个选项,可以在标记和彩色背景之间切换,或者同时显示两者。 旧的高亮样式也支持更新的逻辑,并显示测试覆盖率和测试结果。
dotCover 2016.3
新的代码覆盖率高亮显示。 您可以直接在代码编辑器中查看测试结果。
能够从 控制台运行器中过滤进程,以通过排除与覆盖率分析无关的子进程来减少不必要的开销。
更方便的失败测试调试。 您可以设置断点并运行调试。