是否可以使用 Visual Studio 获取集成测试的代码覆盖率数据

本文关键字:集成测试 代码覆盖率 数据 获取 Studio 可以使 Visual 是否 | 更新日期: 2023-09-27 17:55:37

我正在测试一个 ASP.NET 应用程序,并希望获得有关我的集成测试执行了多少产品代码的代码覆盖率信息。我们的库已经检测过,符号(pdb)文件也可用,但我需要确切地知道如何使Visual Studio能够捕获在IIS中执行的代码并返回.coverage文件。我的集成测试是Web api测试和Selenium浏览器测试的混合体。

这能做到吗?

是否可以使用 Visual Studio 获取集成测试的代码覆盖率数据

是的,您可以使用 Visual Studio 2013 附带的动态代码覆盖率工具执行此操作。我使用的是高级版,所以我不能确定哪些版本可能有也可能没有这个组件。

启动覆盖范围并将其挂接到 IIS 的命令如下所示:

<VisualStudioInstallDirectory>'Team Tools'Dynamic Code Coverage Tools'CodeCoverage.exe collect /IIS /session:WebSession /output:<CoverageOutputFileName>.coverage

这将重新启动 IIS 并启动覆盖过程。

运行集成测试(如果需要,也可以执行手动测试)。完成后,使用以下命令停止覆盖范围工具:

<VisualStudioInstallDirectory>'Team Tools'Dynamic Code Coverage Tools'CodeCoverage.exe shutdown /session:WebSession 

这将完成创建覆盖文件,然后可以在Visual Studio中打开该文件。请注意,shutdown 命令使 CodeCoverage.exe 保持运行状态。重新启动 IIS 将关闭 CodeCoverage.exe 进程。

其他一些注意事项:

  • 如果指定的输出覆盖率文件已存在,则代码覆盖范围监视器将无法启动。在开始之前,请确保使用唯一的文件名或删除任何现有文件。
  • 如果将这些命令作为外部工具嵌入到 Visual Studio 中,则需要以管理员身份启动Visual Studio才能启动正确。
  • 如果要将覆盖率文件转换为 xml,以便它可以由其他工具(如报告生成器)使用,您可以使用以下命令转换覆盖文件:

    ''Team Tools''Dynamic Code Coverage Tools''CodeCoverage.exe analyze InputCoverageFile.coverage/output:OutputFile.coveragexml