lcov统计代码覆盖率

  1. 编译工程时需要增加两个选项
SET(CMAKE_C_FLAGS "-fprofile-arcs -ftest-coverage ${CMAKE_C_FLAGS} ")
SET(CMAKE_CXX_FLAGS "-fprofile-arcs -ftest-coverage ${CMAKE_CXX_FLAGS} ")

-ftest-coverage:在编译的时候产生.gcno文件,它包含了重建基本块图和相应的块的源码的行号的信息。
-fprofile-arcs:在运行编译过的程序的时候,会产生.gcda文件,它包含了弧跳变的次数等信息

  1. lcov转换为html文件
lcov -d . -t "face unlock utest" --remove "*/include/*" -o "FaceUnlock.cov" -b . -c
genhtml -o coverity_result FaceUnlock.cov
firefox ./coverity_result/index.html

-d 指定搜索目录, .表示在当前目录下搜索.da文件
--remove: 屏蔽匹配的文件,即不计算这些文件的覆盖率

原文地址:https://www.cnblogs.com/cristiano-duan/p/13281524.html