1、gcov

Linux下代码覆盖率工具,属于gcc工具集之一,随gcc一起发布,不需要独立安装。

使用gcov -v 可以查看gcov的版本信息,如下:

【linux+gcov+lcov】linux下借助gcov和lcov工具实现单元测试覆盖率统计练习

2、lcov

lcov是gcov的图形化工具,可生成html格式的代码覆盖率报告,提高覆盖率检测结果的可读性。

lcov需要自己下载的开源软件,下载地址如下:

https://sourceforge.net/projects/ltp/files/Coverage%20Analysis/

3、lcov的手动安装

(1)进入到.tar.gz所在的目录;

(2)执行如下命令:tar -zxvf lcov-1.14.tar.gz

==》以lcov-1.14版本安装为例。

【linux+gcov+lcov】linux下借助gcov和lcov工具实现单元测试覆盖率统计练习

(3)cd  lcov-1.14

(4)make install

【linux+gcov+lcov】linux下借助gcov和lcov工具实现单元测试覆盖率统计练习

(5)lcov -v  //查看版本信息

[[email protected] lcov-1.14]# lcov -v

lcov: LCOV version 1.14

4、使用gcov的方法

(1)增加编译选项

#coverage--- gcda file ,arcs---gcdo file

CFLAGS+=-fprofile-arcs -ftest-coverage

其中-fprofile-arcs用于生成.gcno文件,-ftest-coverage用于生成.gcda文件

(2)链接时使用:

#ld

LDFLAGS+=-lgcov

(3)gcc编译成功后会生成对应同名的.gcno文件

(4)执行生成的可执行文件后生成同名的.gcda文件

(5)针对特定的源文件,执行gcov命令后生成覆盖率信息文件,即.gcov

如:针对test.c

gcov test.c

则生成test.c.gcov文件,这个就是代码覆盖信息。

 

5、lcov的使用方法

(1)我们为了更直观的查看代码覆盖率,可以借助lcov(gcov的可视化工具),针对生成的.gcov文件进行改造,生成最终的test.info文件。

在.gcov所在的目录下执行如下命令:

lcov -c -d . -o 'test.info' -b .

此命令执行成功后会生成对应的info文件(文件名可自定义)。

(2)通过genhtml工具(lcov工具集中包含)生成result文件,其中包含index.html。

(3)在windows下可以双击index.html,显示不同目录下的覆盖率统计结果,如下:

【linux+gcov+lcov】linux下借助gcov和lcov工具实现单元测试覆盖率统计练习

6、工程源码访问链接

 

7、参考文献

(1)https://blog.csdn.net/hanlizhong85/article/details/78009819?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

 

相关文章: