关于代码覆盖

一.为什么要跑覆盖率:

    如果你在写c/c++代码,如果你没对你的代码写过测试用例,如果你没有对你的代码使用覆盖率分析,那么建议你从现在开始对你的代码做覆盖。

    好处当然是很多的。简单说,(1)当你对你对你的代码写过单元测试用例,从你的覆盖率上可以分析出你的的用例完备性,用例完备,你的功能才完备。(2)当你对你的代码写过接口测试或者系统测试,从你的覆盖率上可以分析到哪些代码是无用代码,删除无用代码可以提高代码质量。

二.工具:

    自然是gcov。(1)自己写的makefile,请加上编译选项 -fprofile-arcs -ftest-coverage。(2)用的cmake,那请在cmake上-DCMAKE_BUILD_TYPE=Debug -DENABLE_GCOV=1。

    编译完成后,编译路径下会有gcno文件。在同一台机器上运行程序,程序正常退出后,编译路径下会有gcda文件。直接使用gcov 即可看到覆盖率。产生网页文件lcov --directory . --capture --output-file xxx.info ,genhtml -o results xxx.info。

三.其他注意:

    代码中如果有字节对齐的东西,如果没有恢复字节对齐内容,gcov编译出来的程序可能会使原来正常的程序运行出core_dump。

    代码没有正常退出或者文件权限不对,有可能导致gcda文件无法生成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值