6

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

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

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

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

以上将为您提供 results.coverage 文件,据我所知,如果没有 Premium 或 Ultimate 版本,就无法查看它。

4

3 回答 3

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# 覆盖文件,但据我了解,应该没有任何区别。

于 2014-10-21T15:30:24.207 回答
3

如果你准备好使用第三方库,你可以使用OpenCPPCoverage。它对我来说就像一个命令行应用程序。但我无法像 Professional Visual Studio 2013 中的 Visual Studio 插件一样运行它。

于 2015-08-12T09:45:39.520 回答
1

获取覆盖率数据的一种可能方法是在单元测试程序上运行检测工具包。检测工具将告诉您在执行期间覆盖了多少,您可以轻松地将这些数据与单元测试给您的覆盖率相关联。我使用 XCode 项目和OpenPAT进行了此操作,但您可以使用任何 Visual Studio 友好工具包进行相同操作。

于 2014-10-22T03:36:48.857 回答