端到端测试中遗留应用程序的代码覆盖率

问题描述

我正在构建一个基于 specflow 和 XUnit 的测试套件,其中包含运行一些遗留 .net 4.5 应用程序的各种端到端测试

遗留应用程序几乎没有任何单元测试。我希望使用端到端测试查看在遗留应用程序中运行的代码的覆盖率。我知道进行适当的单元测试会更好,但是由于代码的编写方式目前是行不通的,因此架构使它变得非常困难。有没有办法通过使用 DotCover 和/或 Coverlet 来做到这一点?

解决方法

我的体验可能略有不同,因为我将 dotCover 作为 Resharper 的 Jetbrains Ultimate 软件包的一部分。

如果您单独运行 dotCover,那么您可以像往常一样运行应用程序。当您捕获快照时,它将向您显示测试覆盖率,以百分比形式显示所执行代码的每个部分。我倾向于在调试版本上运行它。

如果您将结果导出为 HTML,然后查看它们,您将在左侧的窗口窗格中看到覆盖率,并通过选择左侧的部分来显示右侧的匹配代码区域: enter image description here

在 Visual Studio 中,您应该能够选择“覆盖所有测试”,或者如果您开始测试会话,您可以选择(突出显示)要运行的单元测试,然后选择“覆盖单元测试”。您需要确保使用 Jetbrains/dotCover 菜单选项而不是 MS 测试运行单元测试。封面版旁边有一个小盾牌符号。

这将运行突出显示的单元测试并为您提供覆盖率输出。然后,您可以将报告导出为 HTML 或在 Visual Studio 中选择代码文件,它将显示已测试和通过的区域(每行左侧将有一个绿色标记)或未测试或失败(每行将有一个红色标记左边)。

enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...