2013-10-16 73 views
3

我的C++单元测试使用gtest框架,因此每个测试都是单独的可执行文件。我正在运行CodeCoverage.exe工具来获取每个可执行文件的原始覆盖率数据。当我在Visual Studio中打开结果时,每个可执行文件运行将出现在单独的分支中,并且结果不能合并在一起。
有什么办法可以使这项工作?Visual Studio 2012 C++代码覆盖合并可执行文件

我试过的一件事是在命令行中指定/session:uniq用于两次运行,但没有任何效果。

+0

有趣,看起来像在早期版本的VS([如何:合并代码覆盖数据](https://msdn.microsoft.com/en-us/library/ms318549(v = vs.100).aspx))中可能会合并合并,我不知道它切换到了什么。 – jxramos

回答

0

好的,这应该是一条评论,但我还没有权限。 您可以使用宏运行所有的单元测试: RUN_ALL_TESTS();

+0

这对我来说不是一个真正的选择。这些单元测试必须是单独的可执行文件。 – shoosh

2

它可以帮助您通过vsperfcmd.exe进行捕获吗?

  1. 建立你的GTEST与指定的链接
  2. 仪器您GTEST的exe与Visual Studio覆盖仪表
    • vsinstr.exe gtest.exe /COVERAGE
  3. 启动代码覆盖捕获工具/profile标志
    • vsperfmon.exe /COVERAGE /OUTPUT:gtest.coverage
  4. 运行GTEST
  5. 停止捕获工具
    • vsperfcmd.exe -shutdown
  6. 启动输出文件(gtest.coverage)看到Visual Studio中的输出
+0

这仍然在VS 2012中工作吗?我认为它只做了动态仪表。 –

+0

不幸的是,至少在VS2015中,这提供了与他在问题中提到的相同的结果。 –

相关问题