dotCover功能

dotCover是一个.NET单元测试和代码覆盖工具 ,可以在Visual StudioJetBrains Rider中正常使用 ,可以帮助您知道代码在多大程度上覆盖了单元测试,提供了可视化代码覆盖的绝佳方法,并且可以进行持续集成。 dotCover在针对.NET Framework ,Silverlight 和.NET Core的应用程序中计算和报告语句级代码覆盖率。

Visual Studio整合

与Visual Studio和JetBrains Rider集成

dotCover是Visual Studio和JetBrains Rider的插件,使您无需离开代码编辑器即可分析和可视化代码覆盖率。这包括直接在IDE中运行单元测试和分析覆盖率结果,以及对不同颜色主题,新图标和菜单的支持。

dotCover支持Visual Studio 2010 — 2019预览版1和JetBrains Rider 2018.2或更高版本。

Visual Studio整合

在Windows,macOS和Linux上均可使用

作为Windows上Visual Studio或JetBrains Rider的一部分,dotCover支持针对.NET Framework 1.0 – 4.7和.NET Core 1.0 – 3.0的项目。在macOS和Linux上,dotCover只能用作JetBrains Rider的一部分,用于分析.NET Core 2.0 – 3.0项目中的代码覆盖率。

捆绑的单元测试运行器

运行和管理单元测试

dotCover捆绑了一个单元测试运行器,它与.NET开发人员的另一个JetBrains工具ReSharper共享。

该运行器在Visual Studio / JetBrains Rider中工作,允许通过会话管理单元测试,并支持多个单元测试框架,即MSTest,NUnit,xUnit(全部可用)和MSpec(通过插件)。

使用dotCover进行连续测试

持续测试

dotCover支持连续测试:现代的单元测试工作流程,dotCover可以即时找出受最新代码更改影响的单元测试,并自动为您重新运行受影响的测试。

根据您的喜好,dotCover可以在保存文件,构建解决方案时或在您明确指示dotCover这样做时运行受影响的测试。

可以在任何单元测试会话中打开连续测试模式:通过这种方式,您可以选择要连续运行的测试以及以传统方式运行的测试。

使用dotCover的单元测试运行器运行和管理单元测试

单元测试范围

dotCover的一个主要用例是分析单元测试的覆盖范围-即找出应用程序业务逻辑的哪些部分包含在单元测试中,哪些没有。

除单元测试运行结果外,dotCover还显示一个覆盖树,该树显示单元测试如何完全覆盖特定项目,名称空间,类型或类型成员。

Visual Studio和JetBrains Rider中的覆盖范围突出显示

为了可视化coverage数据,dotCover可以在代码编辑器中突出显示代码行。有一个选项可以在突出显示标记和彩色背景之间切换或同时显示两者。

请注意,突出显示不仅显示覆盖和未覆盖的代码,而且覆盖单元测试的结果也是如此。绿色表示测试通过,而红色表示至少一项覆盖该语句的测试失败。灰色显示未发现的代码。

从代码导航到涵盖它的单元测试

导航到涵盖测试

dotCover提供了一个命令(和键盘快捷键)来检测哪些测试覆盖了代码中的特定位置,无论是类,方法还是属性。

您可以从Visual Studio文本编辑器或dotCover的Coverage Tree视图中调用命令。

您可以从列出测试的弹出窗口中导航到任何这些测试。此外,您可以立即运行它们或将其添加到现有的单元测试会话中。

dotCover热点视图

热点视图

热点视图旨在帮助您确定解决方案中最具风险的方法。热点是根据方法的高圈复杂度和低单元测试范围来计算的。

在远程计算机上运行覆盖率分析

远程代码覆盖

您可以在远程计算机上运行单元测试的覆盖率分析,并将结果提供回本地计算机。一旦开始覆盖率分析,dotCover就会将二进制文件和要执行的测试列表发送到远程服务器。

服务器执行所有计算,然后将覆盖率快照发送回您的计算机。然后,您可以按照与本地覆盖运行相同的方式检查覆盖结果。

属性过滤器是覆盖率过滤器的补充

覆盖过滤器

有时,您不想知道整个解决方案的覆盖率数据。例如,您可能对标记有ObsoleteAttribute或特定旧项目的代码的覆盖率统计数据不感兴趣。

在这种情况下,您可以根据项目,名称空间,类型或类型成员名称设置全局或特定于解决方案的coverage筛选器。还可以使用属性过滤器,将收集的覆盖范围信息限制为标记(或未标记)某些属性的代码。

当您从覆盖范围结果中排除某些项目时,dotCover会立即重新计算统计信息

从覆盖树中排除节点

作为预先设置的过滤器或应用于打开的任何解决方案的替代方法,您可以在使用覆盖范围结果时将它们排除在覆盖范围之外。

当您已经收集了覆盖率数据后,可以选择从覆盖率树中排除特定节点(并且可以选择创建永久性覆盖率过滤器)。一旦这样做,dotCover将立即重新计算覆盖率统计信息。

dotCover将覆盖率数据导出为多种格式,包括XML,HTML和JSON

多种报告格式

dotCover可以帮助您按需要处理覆盖数据。

导出为多种格式,包括HTML,XML,JSON和NDepend XML,使您可以与团队的其他成员共享覆盖率报告,或将覆盖率信息传递给外部服务。

dotCover可用于手动测试

手动测试的代码覆盖率

作为单元测试覆盖率的替代方法,dotCover可以对从Visual Studio执行的.NET应用程序运行覆盖率分析。

这使QA工程师能够执行用例场景并检查在该用例期间实际执行了代码的哪些部分。保存和合并coverage快照支持执行非平凡的测试用例。

作为持续集成的一部分,TeamCity中的代码覆盖范围突出显示

覆盖率分析作为持续集成的一部分

dotCover非常适合持续集成服务器,尤其是JetBrains自己的产品TeamCity

首先,通过Visual Studio的TeamCity加载项,dotCover能够从TeamCity服务器获取覆盖率数据,而无需在本地计算机上运行覆盖率分析。

另一方面,dotCover覆盖率分析引擎已捆绑到TeamCity的免费版本中,该版本可帮助计划覆盖率作为持续集成过程的一部分运行并生成服务器端覆盖率报告。TeamCity了解dotCover控制台运行程序的输出,并在构建日志中突出显示其错误和警告。

下载dotCover

30天免费试用