使用Visual Studio 2013 Professional进行本地C++的代码覆盖率报告

Jay*_*ker 6 c++ unit-testing visual-studio test-coverage

使用Visual Studio 2013 Professional的C++单元测试框架,可以编写单元测试并在IDE中运行它们,但是为了生成任何覆盖报告,显然需要有Visual Studio的Premium或Ultimate版本.

是否可以使用专业版获得代码覆盖率报告,最好不安装任何第三方工具?如果没有,那些没有使用更昂贵的IDE版本的人会有哪些替代选项?

请注意,可以使用命令行工具生成coverage数据,但我无法找到查看结果的方法.为了便于参考,以下是命令行生成覆盖率统计信息的步骤:

  1. 使用/PROFILE链接器开关构建要测试的代码
  2. 运行vsinstr /coverage <binaryName>以检测代码; 确保您在VS 2013命令提示符下
  3. 运行start vsperfmon -coverage -output:results以运行探查器
  4. 运行单元测试
  5. 通过运行停止探查器 vsperfcmd -shutdown

上面会给你一个results.coverage文件,据我所知,没有Premium或Ultimate版本就无法查看它.

小智 7

使用VS2013 Professional,如果你想在没有第三方工具的情况下Requirements: Visual Studio Ultimate, Visual Studio Premium(http://msdn.microsoft.com/en-us/library/dd537628.aspx),你就不走运了.根据我的理解,您已经设法生成*.coverage文件,并且您在打开它时遇到问题.Visual Coverage(https://github.com/jsargiot/visual-coverage)工具可以帮助您,它使用起来非常简单,它是开源的.如果您想查找更多替代方案,请参阅另一个SO线程:在Visual Studio之外查看代码覆盖率结果.这些工具适用于C#覆盖文件,但据我所知,应该没有任何区别.

  • 所谓的opensource"Visual Coverage"工具无耻地包含两个MS DLL,我相信**不会重新分配.`ReportGenerator`工具需要XML覆盖数据,我认为这在Premium和Ultimate之外是不可用的. (2认同)