Linux C++ 单元测试与gcov代码覆盖率统计

清泛原创

本文主要介绍Linux下C++单元测试下的代码覆盖率统计的方法,测试框架采用gtest,当然也可以使用其他的,这里不做过多的说明,主要介绍代码的覆盖率统计方法。

一、什么是gcov
gcov是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
(完)

c++ gtest ut gcov lcov

分享到:
评论加载中,请稍后...
回到顶部