Linux下和Windows下Google Test (GTest)测试环境搭建步骤

Linux下Google Test (GTest)和Windows下测试环境搭建步骤
Step 1:下载GTEST–gtest-1.7.0.zip
下载链接为:https://code.google.com/p/googletest/downloads/list
Step 2:认识文件夹
下载并解压之后,就可以看到gtest-1.7.0文件夹
打开make文件夹,你会发现里面只有一个Makefile文件。查看Makefile文件内容,得知这是系统给出的编译samples文件夹中的第一个sample的命令
Step 3:改写Makefile文件
新建一文件夹拷贝Makefile文件(mkdir code)并修改为:
CXX = g++
CPPFLAGS = -isystem $(GTEST_DIR)/include
CXXFLAGS = -g -Wall -Wextra -pthread
#LDFLAGS =
#LIBS = -lpthread -lgtest
GTEST_DIR = …
USER_DIR = .
TARGET = main
#GTEST_HEADERS = $(GTEST_DIR)/include/gtest/.h
$(GTEST_DIR)/include/gtest/internal/
.h
#INCS = -I ./ -I KaTeX parse error: Expected 'EOF', got '#' at position 18: …TEST_HEADERS) #̲FILES =(foreach d,(USERDIR),(USER_DIR),(wildcard $(d)/*.cpp))
SRC = (wildcard.cpp)OBJS=(wildcard *.cpp) OBJS =(patsubst %.cpp,%.o,$(SRC))
all: KaTeX parse error: Expected 'EOF', got '#' at position 10: (TARGET) #̲(TARGET): $(OBJS)

$(CXX) $(CXXFLAGS) $^ -o [email protected]

#$(OBJS):%.o:%.cpp

$(CXX) $(CXXFLAGS) -c $< -o [email protected] $(CPPFLAGS)

clean:
rm -f $(TARGET) *.o
.PHONY:clean

#GTEST_SRCS_ = $(GTEST_DIR)/src/.cc $(GTEST_DIR)/src/.h $(GTEST_HEADERS)
#gtest-all.o : $(GTEST_SRCS_)

$(CXX) (CPPFLAGS)I(CPPFLAGS) -I(GTEST_DIR) $(CXXFLAGS) -c \

$(GTEST_DIR)/src/gtest-all.cc

#gtest_main.o : $(GTEST_SRCS_)

$(CXX) (CPPFLAGS)I(CPPFLAGS) -I(GTEST_DIR) $(CXXFLAGS) -c \

$(GTEST_DIR)/src/gtest_main.cc

#gtest_main.a : gtest-all.o gtest_main.o

$(AR) $(ARFLAGS) [email protected] $^

%.o :%.cpp
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o [email protected]

$(TARGET) : $(OBJS) gtest_main.a
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o [email protected]

gtest_main.a的生成第一次执行,后续这部分可以不在编译只需保证文件夹下存在即可

make&&./main
Linux下和Windows下Google Test (GTest)测试环境搭建步骤
Step 5:添加自己的测试函数
总结:环境搭建完成之后,每次测试一个文件xxx.cpp以及它的xxx.h文件,就把这俩放入code文件夹,然后编写xxx_unittest.cpp测试文件,也放进去。然后到这个目录下用命令行 make && ./可执行文件就可以了

Windows下则是进入msvc目录: 打开\gtest\msvc\gtest.sln, 编译即可.编译之后,在msvc里面的Debug或是Release目录里看到编译出来的gtestd.lib或是gtest.lib文件。
第一个Demo
新建一个Console Application。接着就是设置工程属性:
配置VS项目
配置包含目录
项目属性页->配置属性->C/C+±>常规->附加包含项目: 加入gtest\inclue的相对目录
配置依赖项
项目属性页->配置属性->链接器->输入->附加依赖项: 加入gtest\Debug\gtestd.lib相对目录
预处理器
_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING
_CRT_SECURE_NO_WARNINGS
代码生成配置
项目属性页->配置属性->C/C+±>代码生成->运行库: 改成 多线程调试(/MTd)
项目属性页->配置属性->C/C+±>代码生成->启用函数级链接: 改成 是(Gy)
工程设置后了后,我们来编写一个最简单测试案例试试,我们先来写一个被测试函数:

#include <gtest/gtest.h>

int Foo(int a, int b)
{
if (a == 0 || b == 0)
{
throw “don’t do that”;
}
int c = a % b;
if (c == 0)
return b;
return Foo(b, c);
}
TEST(FooTest, HandleNoneZeroInput)
{
EXPECT_EQ(2, Foo(4, 10));
EXPECT_EQ(6, Foo(30, 18));
}
int main(int argc, _TCHAR* argv[])
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
直接运行案例
Linux下和Windows下Google Test (GTest)测试环境搭建步骤