gtest单元测试结果可视化
背景
有些代码框架下,比较适合写单元测试,这里记录一次用gtest框架进行单元测试到最后结果可视化的案例流程
步骤
(1)环境配置
本地开发环境是linux Ubuntu14
在linux下这些操作应该都是通用的
预先要准备好的环境有 gtest,gmock环境
然后下载lcov进行可视化
sudo apt-get install lcov即可安装
(2)修改CMakeLists.txt
在原本编译通过的CMakeLists.txt里,增加如下选项
1 | # gcov相关编译选项 |
如下图所示
(3)生成可视化目标文件
在cmake ,make,运行程序后查看是否生成目标文件
生成测试程序test
此时到build/CMakeFiles/test.dir/目录下,可以看到很多gcno文件,如下图所示
运行一下test程序
当运行完test程序后,再进入build/CMakeFiles/test.dir/目录下,除了原本的gcno文件,还有生成的gcda文件(之后可视化,需要这两类文件都存在)
到此,目标文件都生成了
(4)可视化
输入以下指令
1 | 完整指令如下 |
即可在当前文件夹下,生成test.info文件
将test.info继续生成可视化的html,进行结果的可视化
输入以下指令
1 | genhtml test.info -o ./output |
如下图所示
可以看出,执行完上面的指令后,生成了一个output子文件夹,进入文件夹内,可以看到生成的index.html可视化页面
用浏览器打开html后效果如下
点击左侧的链接后,可以看到每个代码cpp文件的覆盖率
点击左侧的链接后,可以点进去看每个cpp文件
如下所示,点入Charutil.cpp文件链接,可以看到蓝色选中的代码段,都是被测试覆盖过的
到此,单元测试的可视化工作便完成了。这里以一个案例,做一个记录。