• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

单元测试: - gtest构建、安装、demo,覆盖率测试

武飞扬头像
klbc
帮助1

一、简介

我们熟悉的单元测试框架有很多,比如 gtest, boost.test, catch等,今天以功能完备,文档丰富,比较常用的 gtest 为例子,包括构建、安装、demo, 覆盖率展示等。文章主要面向对单元测试了解不多的小白,更多单元测试内容自己百度吧,内容很多。

1、如下内容在个人的腾讯计算云上完成,linux ubuntu系统

学新通

 2、自行百度的意思是搜索,不是真的百度,能用谷歌最好不要用百度,做开发的都懂。

二、gtest构建和安装

1、源码下载

github仓库地址: GitHub - 谷歌/谷歌test: GoogleTest - Google Testing and Mocking Framework

学新通

方法一

如果 git 工具已经安装和配置正确,可以直接用 git 拉取代码

git clone git@github.com:谷歌/谷歌test.git

方法二

也可以在仓库直接下载源码包到本地解压,我下载的1.8.1版本

2、构建和安装 

用 cmake make 构建和安装其实非常简单,具体可参考官方文档,顺便提一句,大家要习惯看原汁原味的英文官方文档。 

https://github.com/谷歌/谷歌test/blob/main/谷歌test/README.md

mkdir build

cd buld

cmake ../

make 

sudo make install

学新通

 学新通

 学新通

 可以看到我的 gtest 就安装成功了,库文件在 /usr/local/lib 下, 头文件在 /usr/local/include/gteest 和 /usr/local/include/gmock

三、覆盖率工具gcov / lcov

1、什么是 gcov / lcov

gcov是gnu工具集自带的工具,用来统计代码覆盖率,不过只有文本信息, lcov 工具可以理解成 gcov 工具的前端,根据 gcov 的数据生成可视化的报告,可以很直观的来看单元测试的代码覆盖率。更多信息请自行百度。

2、lcov 安装

源码下载和安装指南,请参考:

GitHub - zhaoyf22/lcov: LCOV

学新通

查看帮助文档ok,说明安装好了

学新通

四、demo构建和覆盖率测试

1、demo获取

可以从如下仓库获取一个参考 demo

GitHub - zhaoyf22/cmake-gtest-coverage-example: A sample C CMake project demonstrating 谷歌 testing framework with mocks and coverage.

2、构建和测试

因为我们本地已经安装了 gtest,修改下demo 中的 CMakeLists.txt 内容,注释掉构建 gtest 的内容,把库文件路径和头文件路径加上去。

学新通 然后用自带的脚本构建就好了,make_all.sh

学新通学新通学新通

 构建成功,我们看到 coverage_report 下面已经生成了报告

学新通

3、代码覆盖率查看

由于计算云无图形界面窗口,我们将报告拷贝到本地,用浏览器查看即可

学新通

 总体信息里面有行覆盖率,函数覆盖率,分支覆盖率,这三个数据具体什么以上自行百度,特别是分支覆盖率。学新通

 可以看到源文件中具体覆盖到那些行,那些没有被覆盖等。学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgijagc
系列文章
更多 icon
同类精品
更多 icon
继续加载