【问题标题】:Using Visual Studio to do Code Coverage on gtest unit tests for native VS C++使用 Visual Studio 对原生 VS C++ 的 gtest 单元测试进行代码覆盖
【发布时间】:2015-05-03 09:46:58
【问题描述】:

朋友们,

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

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

我要做的是弄清楚

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

我浏览了这些论坛、MSDN 和其他网站(如 stackoverflow),但找不到很好的指导资源来使这种工具组合发挥作用。正如我所说,我的解决方案、项目和单元测试运行良好,但要添加代码覆盖率,我不知道如何使用 Microsoft 自己的 Visual Studio 代码覆盖率来做到这一点。

我已经评估了其他一些软件包,例如 Software Verify、Semantic Designs、OpenCPPCoverage 和 Bullseye。我希望尝试我们的 Visual Studio 的代码覆盖组件,因为它已经是我们开发环境的一部分,但我似乎无法弄清楚它如何或是否会起作用。

有什么帮助吗?

感谢您提供任何反馈,您可以提供信息。

【问题讨论】:

    标签: c++ unit-testing code-coverage googletest


    【解决方案1】:

    搜索更多后,我发现我缺少的是在 VS 2013 中运行测试的适配器。虽然我的测试是作为构建过程的一部分执行的,但它们并没有在测试资源管理器中生成结果,因为它是'没有与 Visual Studio 的测试资源管理器交互。这可以简单地通过安装扩展来完成。我发现对我们很有效的扩展是 GoogleTest Runner,它可以在扩展库中找到:

    GoogleTest Runner

    我把这个问题和答案留在这里,以防其他人遇到同样的问题并需要帮助

    【讨论】:

    • gtest 对 Visual Studio 有多大用处?
    • @anton-k,在那个环境中适应 gtest 需要一些时间,但现在进展顺利......我认为关键是如果你已经了解 Gtest 和 Visual Studio ,它可以是一个很好的匹配......上面的这个插件在使代码覆盖率的东西至少有用......
    猜你喜欢
    • 2015-01-16
    • 1970-01-01
    • 2021-09-10
    • 2011-07-23
    • 1970-01-01
    • 2016-05-04
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多