Linux C++ 单元测试与gcov代码覆盖率统计
清泛原创
本文主要介绍Linux下C++单元测试下的代码覆盖率统计的方法,测试框架采用gtest,当然也可以使用其他的,这里不做过多的说明,主要介绍代码的覆盖率统计方法。
一、什么是gcovgcov是gcc自带的的代码覆盖率测试工具,结合lcov可以产生图形化多维度的覆盖率报告。

二、基本使用流程





三、附录

可以过滤/剔除目录:
lcov --rc lcov_branch_coverage=1 -e xxx.tmp '*src/*' -o xxx
lcov --rc lcov_branch_coverage=1 -r xxx.tmp '/usr/include/*' '*lib/*' -o xxx
Demo shell:
g++ --coverage demo.cpp # demo.gcno
./a.out # demo.gcda
gcov demo # demo.cpp.gcov
cat demo.cpp.gcov
lcov --rc lcov_branch_coverage=1 -c -d . -o demo_lcov_report
#all
#genhtml --rc genhtml_branch_coverage=1 demo_lcov_report -o out_report
#filter
lcov --rc lcov_branch_coverage=1 -r demo_lcov_report '/usr/include/*' '*lib/*' -o filtered_coverage
genhtml --rc genhtml_branch_coverage=1 filtered_coverage -o filtered_out_report
(完)