环境安装
1、下载gtest1.8版本
wget https://github.com/google/googletest/archive/refs/tags/release-1.8.1.zip
2、将其解压在“.../gtest/”目录下,解压命令:
unzip release-1.8.1.zip
3、配置
解压后产生文件googletest-release-1.8.1,把这个文件名重命名为gtest-1.8.1,命令:
mv googletest-release-1.8.1 gtest-1.8.1
接下来,将“.../gtest-1.8.1/googletest/include/”目录下的gtest目录拷贝至“/usr/local/include/”和“/usr/include/”下。
cp -r gtest /usr/local/include/
cp -r gtest /usr/include/
然后,在用到gtest的文件中,用#include "gtest/gtest.h"或者#include指令就可以让编译器找到gtest的头文件了。
进入gtest-1.8.1的上一级目录,即“.../gtest/”,接下来要生成gtest-all.o和gtest_main.o机器码文件,将它们链接生成静态库文件libgtest.a。执行g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c gtest-1.8.1/googletest/src/gtest-all.cc命令,会在当前目录产生gtest-all.o,${GTEST_DIR}表示gtest源文件(gtest-1.8.1)的路径。编译“gtest-1.8.1/googletest/src/”目录下的gtest-all.cc和gtest_main.cc。会在当前目录下生成gtest-all.o和gtest_main.o文件,然后再将这两个.o文件合并成一个静态库文件libgtest.a,可以拿出来便于以后gtest工程下链接使用。
4、测试
(1)依次编写sample.h、sample.cpp和test.cpp文件。
sample.h文件:
#pragma once
int fun(int a, int b);
sample.cpp文件:
#include "sample.h"
int fun(int a, int b)
{
return a - b;
}
test.cpp文件:
#include "gtest/gtest.h"
#include "sample.h"
TEST(fun, case1)
{
EXPECT_LT(-2, fun(1, 2));
EXPECT_EQ(-1, fun(1, 2));
ASSERT_LT(-2, fun(1, 2));
ASSERT_EQ(-1, fun(1, 2));
}
(2)编译sample.cpp和test.cpp文件,生成sample.o和test.o文件
(3)将生成的机器码文件(sample.o和test.o)与libgtest.a静态库链接编译,生成可执行文件test:
(4) 运行test可执行文件,即可输出测试结果