dotCover 是一款 .NET 单元测试和代码覆盖率工具,可以直接在 Visual Studio 和 JetBrains Rider 中运行,能够帮助您了解单元测试的代码覆盖程度,为代码覆盖率提供绝佳的可视化方式,并支持持续集成。 dotCover 计算并报告面向 .NET Framework、.NET Core、Mono 和 Mono for Unity 的应用程序的语句级代码覆盖率。
dotCover 是一款可以集成到 Visual Studio 和 JetBrains Rider 中的插件,让您能够在不离开代码编辑器的情况下分析和可视化代码覆盖率。 这包括直接在 IDE 中运行单元测试和分析覆盖结果,以及支持不同颜色主题、新图标和菜单。
dotCover 支持 Visual Studio 2010-2019 和 JetBrains Rider 2018.2 或更高版本。
在 Windows 上,dotCover 作为 Visual Studio 或 JetBrains Rider 的一部分运行,支持针对任何受支持版本的 .NET Framework、.NET Core、.NET、Mono 5.10 或更高版本以及 Unity 2018.3 或更高版本的项目。 在 macOS 和 Linux 上,dotCover 只能用作 JetBrains Rider 的一部分。
dotCover 绑定了一个单元测试运行程序,另一款适用于 .NET 开发者的 JetBrains 工具 ReSharper 也使用该运行程序。
该运行程序可以在 Visual Studio/JetBrains Rider 中运行,允许通过会话管理单元测试,并支持多种单元测试框架,即 MSTest、NUnit、xUnit(全都开箱即用)和 MSpec(通过插件)。
dotCover 支持持续测试:一种现代的单元测试工作流,在这个流程中,dotCover 可以实时发现哪些单元测试受到最新代码更改的影响,并自动为您重新运行受影响的测试。
根据您的偏好,dotCover 可以在保存文件、生成解决方案时或在您明确告知 dotCover 的情况下运行受影响的测试。
可为任意单元测试会话启用持续测试模式:通过这种方式,您可以选择希望哪些测试持续运行,而哪些测试以传统方式运行。
dotCover 的一个主要用例是分析单元测试覆盖率,即找出哪些应用程序业务逻辑被单元测试覆盖,哪些没有覆盖。
除了单元测试运行结果外,dotCover 还会显示一个覆盖树,其中包含单元测试对特定项目、命名空间、类型或类型成员的覆盖程度。
为了可视化覆盖率数据,dotCover 可以直接在代码编辑器中高亮显示代码行。 并允许通过设置在高亮标记和多彩背景或两者同时显示间切换。
请注意,高亮显示不仅可以显示覆盖和未覆盖的代码,还可以显示覆盖单元测试的结果。 绿色表示测试通过,红色表示至少有一个覆盖语句的测试失败。 灰色显示未覆盖的代码。
dotCover 提供命令(和键盘快捷键)来检测哪些测试覆盖了代码的特定位置,这些位置可以是类、方法或属性。
您可以从 Visual Studio 文本编辑器或从 dotCover 的 Coverage Tree 视图调用该命令。
您可以从列出覆盖测试的弹出窗口导航到其中任意测试。 此外,您还可以立即运行它们,或将其添加到现有单元测试会话。
有时,您不希望了解整个解决方案范围内的覆盖率数据。 例如,您也许对标记 ObsoleteAttribute
的代码或特定遗留项目的覆盖率统计不感兴趣。
在这种情况下,您可以根据项目、命名空间、类型或类型成员名称设置全局或解决方案特定的覆盖率筛选器。 还可以使用属性筛选器将收集覆盖率信息的范围限制为使用某些属性标记(或未标记)的代码。
作为提前设置的或应用到打开的任何解决方案的筛选器的替代方法,您可以在使用某些项目时从覆盖率结果中将其排除。
当您已经收集了覆盖率数据后,可以选择从覆盖树中排除特定节点(并且可选择创建永久覆盖率筛选器)。 一旦您这样做,dotCover 将立即重新计算覆盖率统计数据。
dotCover 帮助您以所需的方式处理覆盖率数据。
导出为多种格式,包括 HTML、XML、JSON 和用于 NDepend 的 XML,使您能够与团队的其他成员共享覆盖率报告,或将覆盖率信息传递给外部服务。
作为单元测试覆盖率的替代,dotCover 可以在从 Visual Studio 中执行的 .NET 应用程序上运行覆盖率分析。
这使 QA 工程师能够执行用例场景,并检查在此用例期间实际执行了哪些代码。 保存与合并覆盖率快照支持执行不常用的测试用例。
dotCover 非常适合持续集成服务器,特别是 JetBrains 的自有产品 TeamCity。
首先,通过 Visual Studio 中的 TeamCity 插件,dotCover 可以从 TeamCity 服务器获得覆盖率数据,无需在本地计算机上运行覆盖率分析。
另一方面,dotCover 覆盖率分析引擎绑定到免费版 TeamCity,有助于安排覆盖率作为持续集成流程的一部分运行,并生成服务器端覆盖率报告。 TeamCity 理解 dotCover 控制台运行程序的输出,并且会在生成日志中高亮显示其错误和警告。
可免费试用 30 天