【问题标题】:Google Test coverage for Visual Studio 2012Visual Studio 2012 的 Google 测试覆盖率
【发布时间】:2014-11-24 17:58:43
【问题描述】:
我有 Visual Studio 2012 解决方案,该解决方案构建到静态库 (.lib) 中(scons 构建部分可用)并测试使用 Google 测试框架编写的此代码(编译成具有自己的 main() 函数的 .exe )。
如何使用 Visual Studio 2012 内置工具或任何与 VS2012 无关的免费软件从命令行获取此解决方案的测试覆盖率分析?
【问题讨论】:
标签:
visual-studio-2012
googletest
【解决方案1】:
我终于成功了。
首先,您需要检测用于运行 Google 测试的 *.exe 文件(使用 /Exclude 以避免对不需要的命名空间产生覆盖。正如我的调查所示,“*”通配符仅在语句末尾有效):
vsinstr.exe" mygtests.exe" /COVERAGE /Exclude:std::*
注意:您需要使用 vsinstr 以获得正确的架构。如果您不确定默认的 vsinstr 类型,请使用完整路径
然后你需要开始测试执行监控(Check architecture too):
VSPerfcmd.exe" /START:COVERAGE /OUTPUT:tests.coverage /cs /user:Everyone
之后像往常一样运行您的 *.exe 文件。
在执行结束时使用以下内容完成覆盖率的收集:
VSPerfcmd.exe" -SHUTDOWN
您现在可以在 tests.coverage 文件中获取覆盖结果。