使用Visual Studio对本机VS C++的gtest单元测试执行代码覆盖

Kim*_*tes 3 c++ unit-testing code-coverage googletest

朋友们,

在过去的两周里,我一直在研究单元测试代码覆盖率工具,根据我们的特定需求进行评估.我想评估的最后一个是Visual Studio自己的本机C++单元测试代码覆盖率.在我们的解决方案中,我们有以下内容:

  • 完整的Visual Studio 2013开发环境,具有多个100 k代码行的大型项目
  • 已经在GTEST中编写了900多个单元测试(在构建过程中工作和执行)并在此环境中使用本机C++代码(非托管)
  • 解决方案中的十几个项目

我想要做的就是搞清楚

  • 如果我可以使用Visual Studio代码覆盖率分析工具在我的gtest单元测试中报告结果
  • 获取每次单元测试或运行时生成的代码覆盖率结果(我们的单元测试在构建后步骤中自动运行)

我浏览了这些论坛,MSDN和其他网站(如stackoverflow),我找不到一个很好的指导来使这个工具组合工作.正如我所说,我的解决方案,项目和单元测试运行良好,但是为了添加代码覆盖率,我没有看到如何使用Microsoft自己的Visual Studio代码覆盖率.

我已经评估了一些其他软件包,如软件验证,语义设计,OpenCPPCoverage和Bullseye.我希望尝试我们的Visual Studio的代码覆盖组件,因为它已经是我们的开发环境的一部分,但我似乎无法弄清楚它是如何或是否有效.

有帮助吗?

感谢您提供任何反馈,信息.

Kim*_*tes 5

在搜索了更多之后,我发现我缺少的是在VS 2013中运行测试的适配器.虽然我的测试是作为构建过程的一部分执行的,但它们并没有在测试资源管理器中生成结果,因为它不是与Visual Studio的测试资源管理器连接.这可以通过安装扩展程序来完成.我发现适用于我们的扩展程序是GoogleTest Runner,可在此处的扩展库中找到:

GoogleTest Runner

我要离开这个问题并在这里回答,以防其他人有同样的问题并需要一些帮助