前提:
一个“.c”或者“.cpp”文件,gcc命令能够使用,下载了lcov或者gcovr
安装:
★ gcov:不用安装,会跟随GCC配套发布
★ lcov:gcov的图形化前端
Ubuntu系统安装:sudo apt-get install lcov
windows系统安装:windows环境博主未安装lcov,可能比较繁琐,有需要可以自行搜索安装
★ gcovr:gcov的图形化前端,功能更全面,更方便,有lcov的全部功能
windows/linux系统下安装:pip install gcovr(前提是安装了python,能使用pip)
操作过程:
(0)在.c文件所在路径下打开cmd。
(1)生成覆盖率信息文件(“.exe”和“.gcno”文件):
● gcc(或者g++) -fprofile-arcs -ftest-coverage .c文件名
//比如我要打开“hello.c”
使用命令:
gcc -fprofile-arcs -ftest-coverage -o hello hello.c
可以得到hello.c 的可运行文件hello.exe
也可以不要“-o hello”,那样会得到a.exe文件
-ftest-coverage选项:添加记录单行代码执行次数的指令
-fprofile-arc选项:添加程序每个分支的检测代码(if或者其它条件语句)
(2)生成代码覆盖率信息文件(“.gcda”文件):
● 运行可执行程序“.exe”文件
用上面的例子
使用命令行:
hello.exe
(3)生成代码覆盖率报告(“.gcov”文件和“.c.gcov”文件):
● gcov .c文件名
gcov hello.c
★ LCOV和GCOVR 二选一
◐可视化(LCOV):(LCOV博主没有使用,此处是搜索得到)
(4)用LCOV收集相关数据并生成一个.info文件:
● lcov --capture --directory . --output-file coverage.info
(5)通过genhtml将coverage.info转化为HTML文件(genhtml是lcov自带的工具):
● genhtml coverage.info --output-directory out
生成的OUT目录里包含了HTML版的代码覆盖率报告。
◑可视化(GCOVR):
(4)生成HTML代码覆盖率报告
● gcovr -r . --html --html-details -o coverage.html
直接输入命令
gcovr -r . --html-details -o coverage.html
如果想修改得到的文件名,可以修改coverage.html