google test 环境搭建

最近一直想学一学单元测试,但是却总是卡在搭建环境上,好吧,一步步来,手把手教你搭建环境。

0. 获取源码,传送门在此

https://github.com/google/googletest

1. download之,然后看一下源码目录

我看过之后,觉得对于初学者来说,最有用的就是docs和samples,samples目录下都是一些由浅入深的教你进行单元测试的案例

注释也比较详尽。

2. 阅读Makefile,搞清楚测试是如何构建的

一定要学会看懂makefile,这个文件会告诉你每个测试是如何被编译和链接并最终生成一个单元测试的可执行文件的。

关键是这个makefile是需要好好看一下的

google test 环境搭建_第1张图片

它以samples目录下的sample1.h, sample1.cc【这俩货是我们要测试的一些的api的声明及实现】 以及sample1_unittest.cc【这货是你要写的测试文件】为例,最后编译链接出的可执行文件是sample1_unittest,跑单元测试就是跑这个可执行文件。

3. 环境搭建

上述目录结构有些冗余,我们平时只用到一部分,因此可以进行一个裁剪,搞一个最小模块的所有依赖文件,以及相应的makefile,这就是我们今天的主要目标。

首先,注意哦,像这种框架啥的,一般都是要你去链接一些它提供的库啥的,这时候就要注意了,你需要本地把源码重新编译。否则,直接用他们给的库很可能会出问题,比方说他们给你的库是在x86的机器上编出来的,而你是在arm的机器上跑,这就大错特错了,所以请务必严格按照以下方法,争取一次成功。

1. 拿到我们从网上下载到的安装包,解压得到源码文件夹googletest-master【注意要在linux环境下unzip这个压缩包,要不

可能会丢失一些文件,真是奇怪的问题】

比如我现在要把这套东西弄到树莓派上去跑,我该怎么办呢

2. 把一些头文件移动到方便编译器寻找的地方

google test 环境搭建_第2张图片

3. 重点看一下上面那个makefile的后半部分

google test 环境搭建_第3张图片

可以看到,最后只需要链接生成的libgtest_main.a就行了(如果自己没有写测试的main函数的话,如果写了就链接libgtest.a),所以说,很简单,只需要在当前目录下make一下,就可以看到在本机器上适用的目标文件,库以及可执行文件,运行一下sample1_unittest,没有任何问题,正常输出。

google test 环境搭建_第4张图片

4. 在上述结果的基础之上,我们来搞一个最小可用模块。

需要有libgtest.a libgtest_main.a, 需要有一个修改的makefile,然后剩下的就是需要用户补充的要测的模块的xx.h和xx.cpp文件,以及一个xx_unittest.cpp文件。OK,然后把makefile改成下面这样

google test 环境搭建_第5张图片

这样make后就可以直接生成我们的可执行文件了。

【中间有个小插曲,make的时候出现下面这个问题】

google test 环境搭建_第6张图片

只能sudo make才能成功,我一想这不对啊,哪有sudo make的道理,也想不通找一个头文件有啥权限不够的问题啊,我也把gtest复制到了/usr/include/里面了,后来我才发现我忽略了一件事:gtest目录的权限属性,我一看,发现是

google test 环境搭建_第7张图片

好吧,果然是这个问题,把gtest下的文件夹属性改为755,头文件属性改为644即可。OK,就像下面这样

google test 环境搭建_第8张图片

你可能感兴趣的:(Linux)