谷歌测试:代码覆盖率

gru*_*czy 29 c++ code-coverage googletest

是否可以使用谷歌测试框架通过测试完成代码覆盖?

cha*_*lup 23

是的,我已成功使用免费(gcov)和商业(CTC++)工具.无需特殊步骤,只需按照文档进行操作即可.

有关详细信息,请参阅此博客 http://googletesting.blogspot.dk/2014/07/measuring-coverage-at-google.html

  • 该链接没有解释如何将gcov与gtest集成. (10认同)

Jin*_*tel 14

是的,您可以在Gcov/lcov的支持下为您的Gtest Based应用程序提供支持.请参阅lcov http://ltp.sourceforge.net/coverage/lcov.php的文档

有一个Linux测试项目实用程序可以使您的工作变得非常简单并且非常自我解释.

lcov - 图形GCOV前端

从Ubuntu repo下载:

$ sudo apt-get install lcov
Run Code Online (Sandbox Code Playgroud)
  1. 在构建目录中使用以下命令

    $ lcov --directory ./build/ --capture --output-file ./code_coverage.info -rc lcov_branch_coverage=1
    
    Run Code Online (Sandbox Code Playgroud)
  2. 运行应用程序

  3. 生成HTML报告

    $ genhtml code_coverage.info --branch-coverage --output-directory ./code_coverage_report/
    
    Run Code Online (Sandbox Code Playgroud)

这看起来像 - http://ltp.sourceforge.net/coverage/lcov/output/index.html


atl*_*ste 7

(仅适用于Windows)

看来这个问题仍然存在,所以这里有一个额外的选择.我刚刚在我们的代码覆盖率解决方案上测试了Google测试(是的,我是作者),它适用于Visual Studio.该项目可在以下网址找到:https://github.com/atlaste/CPPCoverage

说明:右键单击项目,运行coverage.:-)

如果您更喜欢XML输出(对于CI),则可以手动调用coverage可执行文件.

  • @kevr 具体怎么样?让我详细说明一下:“是否有可能通过使用谷歌测试框架的测试来完成代码覆盖率?” -- 是的,如果您正在使用此工具,并且您对该工具的 [VS/Windows] 约束感到满意,那么您可以。我想说这是正确的。 (2认同)
  • @kevr如果这是你的定义,那么我在这里的答案与这里的所有其他答案一样偏离主题。我的意思是,来吧,其中一个实际上在答案中有一个“从 ubuntu 存储库下载”——这怎么比我的答案更通用或更切题呢?事实上,我的答案准确地提供了OP所要求的内容,只需一次安装和两次点击。 (2认同)