我的C++单元测试使用gtest框架,因此每个测试都是单独的可执行文件。我正在运行CodeCoverage.exe工具来获取每个可执行文件的原始覆盖率数据。当我在Visual Studio中打开结果时,每个可执行文件运行将出现在单独的分支中,并且结果不能合并在一起。
有什么办法可以使这项工作?Visual Studio 2012 C++代码覆盖合并可执行文件
我试过的一件事是在命令行中指定/session:uniq
用于两次运行,但没有任何效果。
我的C++单元测试使用gtest框架,因此每个测试都是单独的可执行文件。我正在运行CodeCoverage.exe工具来获取每个可执行文件的原始覆盖率数据。当我在Visual Studio中打开结果时,每个可执行文件运行将出现在单独的分支中,并且结果不能合并在一起。
有什么办法可以使这项工作?Visual Studio 2012 C++代码覆盖合并可执行文件
我试过的一件事是在命令行中指定/session:uniq
用于两次运行,但没有任何效果。
好的,这应该是一条评论,但我还没有权限。 您可以使用宏运行所有的单元测试: RUN_ALL_TESTS();
这对我来说不是一个真正的选择。这些单元测试必须是单独的可执行文件。 – shoosh
它可以帮助您通过vsperfcmd.exe进行捕获吗?
vsinstr.exe gtest.exe /COVERAGE
/profile
标志
vsperfmon.exe /COVERAGE /OUTPUT:gtest.coverage
vsperfcmd.exe -shutdown
这仍然在VS 2012中工作吗?我认为它只做了动态仪表。 –
不幸的是,至少在VS2015中,这提供了与他在问题中提到的相同的结果。 –
有趣,看起来像在早期版本的VS([如何:合并代码覆盖数据](https://msdn.microsoft.com/en-us/library/ms318549(v = vs.100).aspx))中可能会合并合并,我不知道它切换到了什么。 – jxramos