3

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

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

4

2 回答 2

2

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

  1. /profile使用指定给链接器的标志构建您的 gtest
  2. 使用 Visual Studio 覆盖检测检测您的 gtest exe
    • vsinstr.exe gtest.exe /COVERAGE
  3. 启动代码覆盖率捕获工具
    • vsperfmon.exe /COVERAGE /OUTPUT:gtest.coverage
  4. 运行 gtest
  5. 停止捕获工具
    • vsperfcmd.exe -shutdown
  6. 启动输出文件 (gtest.coverage) 以在 Visual Studio 中查看输出
于 2013-12-10T20:07:02.553 回答
0

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

于 2013-12-04T12:23:23.053 回答