GTest编译以及实例分析

GTest编译方法:

1. Google test 代码下载

svn下载:svn checkout http://googletest.googlecode.com/svn/trunk/ gtest-svn

例如你把你的代码放在/usr/src/gtest-svn

2. GTest静态库的编译

         GTEST_DIR = /usr/src/gtest-svn

      g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR} /src/ gtest-all.cc

      ar -rv libgtest.a gtest-all.o

3. 这样你可以编译自己的程序了

1> 把libgtest.a 放在你自己定义的lib中,如/home/John/myGtest/lib

2>把GTest需要的头文件放在你自己定义的头文件中,如/home/john/myGtest

/include(头文件只需要从源码中拷贝就可以)

      $cd /home/john/myGtest

$g++ -I./include your_test.cc –L./lib -lgtest -o your_test

GTest实例运行:

4. 写一个例子实现GTest 测试

首先我们建立自己的测试文件为sample.cpp

int sample(inta,intb)
{
if(a==0||b==0)
{
throw"Don‘t do this";
}
int c= a%b;
if(c==0)
return b;
return sample(b,c);
}
其次写自己测试程序的头文件sample.h
int sample(int a,int b);

写GTest测试程序为gtestSample.cpp

#include<gtest/gtest.h>
#include “sample.h”
TEST(sampleTest,HandleNoneZeroInput)
{
EXPECT_EQ(2, sample(4,10));
EXPECT_EQ(6, sample(30,18));
}

最后写我们相关的Makefile文件

GTEST_DIR = ..
USER_DIR = ../program
CPPFLAGS += -I$(GTEST_DIR)/include
CXXFLAGS += -g -Wall -Wextra

TARGET = sample_unittest
OBJ = sample.o gtestSample.o

# All Google Test headers.  Usually you shouldn't change this
# definition.
GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h \
                $(GTEST_DIR)/include/gtest/internal/*.h
CC = g++
$(TARGET) : $(OBJ) 
	$(CC) $(CPPFLAGS) $(CXXFLAGS)  -L../lib -lgtest -lpthread $^ -o $@
sample.o : $(USER_DIR)/sample.cpp $(USER_DIR)/sample.h $(GTEST_HEADERS)
	$(CC) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/sample.cpp

gtestSample.o : $(USER_DIR)/gtestSample.cpp $(USER_DIR)/sample.h $(GTEST_HEADERS)
	$(CC) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/gtestSample.cpp
.PHONY: clean
clean:
	rm -f $(TARGET) $(OBJ)

执行make

./ sample_unittest

运行结果:

Running main() from gtest_main.cc
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from sampleTest, where TypeParam = 
[ RUN      ] sampleTest.HandleNoneZeroInput
[       OK ] sampleTest.HandleNoneZeroInput (0 ms)
[----------] 1 test from sampleTest (0 ms total)

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

Congratulations!You success 微笑


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值