我正在测试一个ASP.NET应用程序,并希望获得有关我的集成测试运行的产品代码量的代码覆盖率信息。我们的库已经过检测,符号(pdb)文件可用,但我需要确切知道如何启用Visual Studio来捕获在IIS中执行的代码并返回.coverage文件。我的集成测试是web api测试和Selenium浏览器测试的混合。
可以这样做吗?
答案 0 :(得分:2)
是的,您可以使用Visual Studio 2013附带的动态代码覆盖率工具执行此操作。我使用的是Premium,因此我无法确定哪些版本可能有也可能没有此组件。
启动coverage并将其挂钩到IIS的命令如下:
<VisualStudioInstallDirectory>\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe collect /IIS /session:WebSession /output:<CoverageOutputFileName>.coverage
这将重新启动IIS并启动覆盖过程。
运行集成测试(或根据需要进行手动测试)。完成后,使用以下命令停止coverage工具:
<VisualStudioInstallDirectory>\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe shutdown /session:WebSession
这将完成创建覆盖文件,然后可以在Visual Studio中打开该文件。请注意,shutdown命令会使CodeCoverage.exe运行。重新启动IIS将关闭CodeCoverage.exe进程。
其他几点说明:
如果要将coverage文件转换为xml,以便它可以 由其他工具(例如ReportGenerator)使用,您可以使用 以下命令转换coverage文件:
\ Team Tools \ Dynamic Code Coverage Tools \ CodeCoverage.exe analyze InputCoverageFile.coverage /output:OutputFile.coveragexml