CentOS7 下使用cmake和make编译安装gmock和gtest

3 篇文章 0 订阅
1 篇文章 0 订阅

gtest是google提供的一个非常强大的单元测试工具;

1.下载gtest

下载地址:https://code.google.com/p/googletesthttps://code.google.com/p/googletest/或者在centos7上直接git(推荐)

git clone https://github.com/google/googletest.git

或自己上github下载一个

//github地址

git clone https://github.com/google/googletest

2.(解压后)进入下载文件目录查看

cd googletest        //进入下载的目录

ls        //查看

Gtest共有两个测试框架:
gmock框架:gmock主要是用来mock待测试模块依赖的一些对象,帮助你在测试中去除不必要的依赖,类似与java的jMock和EasyMock。
gtest测试框架:类似于java里面的junit,用来做单元测试的

3.为防止编译后污染原代码,新建文件夹来编译(可以省略不建)

mkdir build    //建立编译文件夹

cd build        //进入新文件夹编译

4. cmake编译

如果是直接在googletest里编译就用 cmake ,在新建文件夹里编译用 cmake ../

这时候编译的文件夹里就会出现Makefile脚本了

注意:新版本的gtest要求的最低cmake版本是否满足,不满足需要先安装高版本cmake,一般要求cmake3以上;编译安装后用cmake --version发现还是显示之前的版本cmake的话,命令  cd /usr/bin 进入/usr/bin里,找到高版本的cmake(如:cmake3) 用 命令 cp -rf cmake3 cmake复制并重命名来覆盖掉旧版本的cmake脚本,再查询cmake --version就可以显示高版本来正常使用了(卸载旧版本用sudo yum remove cmake)。

5.make编译

make进行编译cmake编译出来的Makefile脚本,编译达到100%——编译完成

 检查是否有lib里 *.a编译成功

6.手动拷贝lib和include (和第7步一样,两者只需要完成其一即可)

如果有root权限,则

    sudo cp libgtest*.a  /usr/lib        //拷贝生成的lib的库文件到服务器的lib里
 
    sudo cp –a include/gtest /usr/include    //拷贝gtest的include到服务器include里
 
    sudo cp –a include/gmock /usr/include    //拷贝gmock的include到服务器include里

这里是手动安装到/usr/include和/usr/lib里 ,所有用户都能使用;

7.安装gmock和gtest到系统(完成6的话可以跳过)

sudo make install

查看是否安装成功:在生成Makefile的文件夹里,终端输入上面的命令安装gmock和gtest,进入四个libgtest*.a文件生成的目录检查,是否已经被复制过来;如果存在说明gtest和gmock模块安装成功;

 如图,则gmock的include文件被复制到 /usr/local/include/gmock里,gtest的include文件被复制到 /usr/local/include/gtest里,gmock和gtest的lib文件被复制到 /usr/local/lib64里,安装成功;

这里是自动安装到/usr/local/include和/usr/local/lib4里,当然安装到这里的/usr/local/lib里也可以,当前用户使用; 

8.执行谷歌自带测试用例

源安装包自带的测试用例存放在下载的gtest文件的/googletest/googletest/samples里

命令及运行状况如下图:

g++  ../src/gtest_main.cc sample1.cc sample1_unittest.cc -o test -lgtest -lgmock -lpthread 

其中 ../src/gtest_main.cc sample1.cc 为测试主程序入口,sample1.cc:待测目标源码,就是测试对象即进行白盒测试的对象;sample1_unittest.cc:测试用例,里面就是我们针对源码写的测试用例脚本,一般为后端开发人员书写;

备注: 编译时要测试主程序(可自定义)、源码(测试目标)、测试用例一起编译,其中-lgmock可以不写入命令,调用gmock的目的是为了减少依赖;

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值