一般来说,我们都用基于GNU的覆盖度评估工具gcov来产生,在GCC的的编译选项上加上选项
-fprofile-arcs -ftest-coverage
或(GCC4.0版本以上)
-fstack-protector -fstack-protector-all -fprofile-arcs -ftest-coverage
即可。 gcov最终产生.gcov文件(由gcov note文件和gcov data文件生成),.gcov文件记录着每行代码被执行的次数,如何更清晰的知道单元测试覆盖率的情况呢? 使用lcov工具可以更加清晰的知道单元测试覆盖的情况:
lcov --directory . --capture --output-file results.info
genhtml -o results results.info
经过上面二句shell语句,就会将不容易看懂的.gcov文件转化成html网页,然后只需要进入results目录去看覆盖率百分比、图表,这样就能快速浏览覆盖率数据了。