在linux上搭建gtest

1.获取gtest源代码

wget https://googletest.googlecode.com/files/gtest-1.7.0.zip

2.编译gtest源代码

unzip gtest-1.7.0.zip
cd gtest-1.7.0
./configure --prefix=/opt/gtest
make

3.安装gtest

sudo mkdir /opt/gtest /opt/gtest/include /opt/gtest/lib
sudo cp -a include/gtest/ /opt/gtest/include
sudo cp -a lib/.libs/* /opt/gtest/lib
rm /opt/gtest/lib/libgtest.la
rm /opt/gtest/lib/libgtest_main.la
sudo cp -a lib/libgtest.la /opt/gtest/lib
sudo cp -a lib/libgtest_main.la /opt/gtest/lib
vim /etc/ld.so.conf.d/gtest.conf,写入/opt/gtest/lib,执行ldconfig

4.准备测试代码

在任意一个位置新建一个代码目录,把以下这几个文件放入

main.cpp
#include<iostream>
using namespace std;

#include <limits.h>
#include "gtest/gtest.h"

int main(int argc, char **argv) {
  ::testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}

func.cpp
#include<iostream>
using namespace std;
#include "func.h"

int func(int a, int b)
{
	return a+b;
}
func.h
int func(int a, int b);
funcTest.cpp
#include<iostream>
using namespace std;

#include <limits.h>
#include "gtest/gtest.h"
#include "func.h"

TEST(AdditionTest,twoValues){
	EXPECT_EQ(3,func(1, 2));
}

makefile
CXX = g++
CXXFLAGS = -g -L/opt/gtest/lib -lgtest -lgtest_main -lpthread
INCS = -I./ -I../../include -I/opt/gtest/include
OBJS = func.o funcTest.o

testAll: $(OBJS)
		$(CXX) $(CXXFLAGS) $(INCS) -o testAll  main.cpp $(OBJS) $(INCS)

.cpp.o:
		$(CXX) $(CXXFLAGS) -c $< -o $@ $(INCS)

clean:
		rm testAll *.o 

5.运行效果:

make

./testAll

[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from AdditionTest
[ RUN      ] AdditionTest.twoValues
[       OK ] AdditionTest.twoValues (0 ms)
[----------] 1 test from AdditionTest (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (0 ms total)
[  PASSED  ] 1 test.

参考资料:

http://www.yolinux.com/TUTORIALS/Cpp-GoogleTest.html#INSTALLATION