端到端测试中遗留应用程序的代码覆盖率
Posted
技术标签:
【中文标题】端到端测试中遗留应用程序的代码覆盖率【英文标题】:Code coverage of legacy applications in end to end tests 【发布时间】:2021-09-24 10:40:50 【问题描述】:我正在构建一个基于 specflow 和 XUnit 的测试套件,其中包含运行一些遗留 .net 4.5 应用程序的各种端到端测试
遗留应用程序几乎没有任何单元测试。我希望使用端到端测试查看在遗留应用程序中运行的代码的覆盖率。我知道最好进行适当的单元测试,但是由于目前编写代码的方式是不可行的,因此架构使它变得非常困难。有没有办法通过使用 DotCover 和/或 Coverlet 来做到这一点?
【问题讨论】:
您的意思是您希望查看覆盖了多少,或者表明端到端测试执行了哪些代码路径? 我对两者都感兴趣。 【参考方案1】:我的体验可能略有不同,因为我将 dotCover 作为 Jetbrains Ultimate 软件包的一部分与 Resharper。
如果您单独运行 dotCover,那么您可以像往常一样运行应用程序。当您捕获快照时,它将以百分比的形式向您显示所执行代码的每个部分的测试覆盖率。我倾向于在调试版本上运行它。
如果您将结果导出为 html 然后查看它们,您将在左侧的窗格中显示覆盖率,并通过选择左侧的部分来匹配右侧的代码区域:
在 Visual Studio 中,您应该能够选择“涵盖所有测试”,或者如果您开始测试会话,您可以选择(突出显示)要运行的单元测试,然后选择“涵盖单元测试”。您需要确保使用 Jetbrains/dotCover 菜单选项而不是 MS 测试运行单元测试。封面版旁边有一个小盾牌符号。
这将运行突出显示的单元测试并为您提供覆盖率输出。然后,您可以将报告导出为 HTML 或在 Visual Studio 中选择代码文件,它将显示已测试和通过的区域(每行左侧有一个绿色标记)或未测试或失败(每行将有一个红色标记左边)。
【讨论】:
以上是关于端到端测试中遗留应用程序的代码覆盖率的主要内容,如果未能解决你的问题,请参考以下文章