ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

gtest and lcov

2020-12-10 12:02:43  阅读:318  来源: 互联网

标签:info 文件 覆盖率 gtest 源码 lcov 目录


要想保持测试的完整性,需要将gtest与lcov配合使用,方能更好地测试源码的质量。

一、下载lcov源码

源码下载链接:https://sourceforge.net/projects/ltp/files/Coverage%20Analysis/LCOV-1.13/

 

二、解压源码

进入到解压文件夹,执行命令“make install”安装lcov

 

三、编译中增加编译参数:-fprofile-arcs -ftest-coverage

(注意:这里是两个参数,分别是:-fprofile-arcs 和 -ftest-coverage)

编译后, 会为每个源文件生成.gcno结尾的文件。

四、编译后运行可执行程序./run_test

运行后,会为每个源文件,生成gcda结尾的文件。

 

五、使用lcov收集统计数据做成图形化显示的的数据,可用于分析测试覆盖率

lcov -c -o test.info -d .

 

  1.   -c :捕捉覆盖率数据
  2.   -d :表示的是目录,也就是gcno和gcda目录。使用lcov统计覆盖率,必须将gcno和gcda放在同一个目录,并且有源代码,且源代码的目录和编译时的目录一样,否则不能生成。
  3.   -o :表示输出文件,以.info结尾,用来存储数据

六、lcov文件过滤

    某些情况下,需要屏蔽第三方库的覆盖率计算或者只统计某个文件夹下的覆盖率计算,就需要用到lcov的文件过滤功能。 

  • 移除制定目录

       需要用到--remove参数,以删除include目录下所有文件信息为例 :

     lcov --remove all.info '*/include/*' '' -o result.info

      all.info  总的覆盖率信息     result.info 筛选后的覆盖率信息

  • 筛选固定目录

       需要用到--extract参数,以指定samples目录为例:

       lcov --extract all.info '*/samples/*' -o result.info

     all.info  总的覆盖率信息     result.info 筛选后的覆盖率信息

 

七、获取html文件可视化输出

genhtml test.info -o output/ 

output是一个目录,index.html为导航文件,使用 web 浏览器打开 index.html 文件查看代码覆盖结果。可看到各个文件夹下源码文件的测试覆盖率,以下是筛选了排除“*/include/*”目录下文件的测试覆盖率信息:

点击进去,可看到各个文件被测试的覆盖率情况,点击到文件中,每个文件中哪一行测试到,哪一行没有测试到。

标签:info,文件,覆盖率,gtest,源码,lcov,目录
来源: https://www.cnblogs.com/pugang/p/14113374.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有