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

Sco*_*uer 6 c# selenium visual-studio

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

可以这样做吗?

Sco*_*uer 2

是的,您可以使用 Visual Studio 2013 附带的动态代码覆盖工具来执行此操作。我使用的是 Premium,因此我无法确定哪些版本可能具有或不具有此组件。

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

<VisualStudioInstallDirectory>\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe collect /IIS /session:WebSession /output:<CoverageOutputFileName>.coverage
Run Code Online (Sandbox Code Playgroud)

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

运行集成测试(或者根据需要进行手动测试)。完成后,使用以下命令停止覆盖工具:

<VisualStudioInstallDirectory>\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe shutdown /session:WebSession 
Run Code Online (Sandbox Code Playgroud)

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

其他一些注意事项:

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

    \Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe 分析 InputCoverageFile.coverage /output:OutputFile.coveragexml