Google Test(GTEST)使用入门(1)- 下载编译安装执行

一、概述

最近在做白盒测试,没怎么接触C++和linux,现在要做C++的白盒测试,确定的方案是使用GTEST。
环境在linux上搭建,就学习了起来,边学边用,并记一下笔记备忘。

备注:当前linxu环境默认已配置好c++的一些编译环境,比如CMake、Make等。

二、源码获取

git仓库地址: https://github.com/google/googletest

有git账号的可以使用git直接clone,没有的可以下载zip,本人这边linux虚拟机下没有配置git,所以直接下载zip。
本人下载1.10.x版本编译不通过,另外下载了1.8.1版本才编译通过,试了1.8.0版本也可以编译通过,
建议下载1.8.1版本。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、源码编译

推送下载下来的源码到linxu下,解压
在这里插入图片描述
进入googletest-release-1.8.1目录,执行命令 cmake CMakeLists.txt,生成Makefile文件,
(在该目录下编译会生成mock程序和gtest程序,如果进入googletest-release-1.8.1/googletest目录编译,则只编译gtest程序)
在这里插入图片描述
再执行make命令,生成四个静态库:libgtest.a libgtest_main.a,libgmlck.a, libgmock_main.a
在这里插入图片描述
通过命令

find . -name "*.a"

可以查看如下文件是否生成:
在这里插入图片描述

四、安装

安装gmock和gtest到系统:

sudo make install

因为我们在googletest-release-1.8.1下编译和执行安装,所以默认会安装gmock和gtest,gmock后面打桩的时候会用到。

  • 注意sudo权限。

在这里插入图片描述
输入命令:

ls -l /usr/local/lib

查看是否安装成功,有如下四个文件,说明gtest安装成功,并安装了gmock模块
在这里插入图片描述

五、执行谷歌自带测试用例

我们还没有添加我们自己的源码,和针对源码的测试用例,但是谷歌已经写好了一些例子,放在如下路径

googletest-release-1.8.1/googletest/samples  // 测试用例和待测源码所在目录
googletest-release-1.8.1/googletest/src/gtest_main.cc // 测试主程序入口

下面我执行samples下的sample1_unittest.cc这个测试集,里面共有6个用例,3个是阶乘的用例,三个是判断是否是质数的用例。

先使用cd命令切换到samples目录:

cd googletests/samples

编译测试用例和测试主程序:

g++ ../src/gtest_main.cc sample1.cc sample1_unittest.cc -o test -lgtest -lgmock -lpthread -std=c++11

在这里插入图片描述

测试结果:
在这里插入图片描述

六、几点说明

  • gtest_main.cc :测试主程序入口,不是我们待测源码的主程序入口,所以整个工程其实可能有两个main函数,一个是测试的main,一个可能是待测源码的main,两个包含main的文件不能同时编译,因为一个执行程序只能有一个入口。
  • sample1.cc:待测源码,就是测试对象,我们就是要对个源码进行白盒测试。
  • sample1_unittest.cc:测试用例,里面就是我们针对源码写的测试用例脚本。
  • 编译时要源码、测试主程序、测试用例一起编译(可以使用Makefile来管理工程的编译,就不用命令行输入那么长命令进行编译)
  • 可以参考谷歌原生的例子,先学习学习谷歌的大神怎么写用例的。
  • 12
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值