下载googletest框架
通过git命令,从代码仓库拉取googletest框架源码,其中gtest1110为拉取代码保存的目标文件夹
git clone https://gitee.com/mirrors/googletest.git gtest1110
编译googletest框架
在gtest1110文件夹下创建build文件夹,以保存编译gtest库文件过程中,产生的中间文件、目标库文件
mkdir build
切换到build文件夹下
cd build
在build文件夹下通过cmake命令,执行上层目录中的CmakeList.txt文件,以生成MakeFile文件。此处由于运行环境不同,执行Cmake命令时需要增加额外的参数。
Unix等系统环境下:
cmake ..
windows系统环境下:
cmake .. -G "Unix Makefiles"
其中的-G参数标明:生成指定的Unix Makefile文件,window下如果不加-G参数,则不会生成Makefile文件
下图为成功生成Makefile文件示意
在build文件夹下执行
make
此时在build/lib文件夹下生成四个库文件
libgmock.a libgmock_main.a libgtest.a libgtest_main.a
执行简单的测试用例
在gtest1110同级目录下,建立lib、include文件夹
mkdir lib
mkdir include
在lib文件夹中创建gtest文件夹
cd lib
mkdir gtest
此时文件目录结构为
├─.vscode
├─gtest1110
├─include
└─lib
└─gtest
通过cp命令,将libgmock.a libgmock_main.a libgtest.a libgtest_main.a四个库文件以及gtest头文件分别拷贝到include和lib/gtest下
cp gtest1110/build/lib/*.a lib/gtest/
cp -r gtest1110/googletest/include/gtest/ include/
建立测试文件gtest.cpp
#include<gtest/gtest.h>
using namespace testing;
int add(int a,int b){
return a+b;
}
TEST(testCase,test0){
EXPECT_EQ(add(2, 3), 5); // 正确
EXPECT_EQ(add(2, 3), 4); // 错误
}
int main(int argc,char **argv){
InitGoogleTest(&argc,argv);
return RUN_ALL_TESTS();
}
此时文件目录为
├─.vscode
├─gtest1110
├─include
│ └─gtest
├─lib
│ └─gtest
├─gtest.cpp
在该目录下执行
g++ gtest.cpp -L lib/gtest -I include -lgtest -pthread
其中的-L参数指定库文件目录,-I参数指定头文件目录
之后,windows下生成a.exe文件
执行该文件
./a.exe
即