googletest是一个用来写C++单元测试的框架,它是跨平台的,可应用在windows、linux、Mac等OS平台上。下面,我来说明如何使用最新的1.6版本gtest写自己的单元测试。
本文包括以下几部分:1、获取并编译googletest(以下简称为gtest);2、如何编写单元测试用例;3、如何执行单元测试。4、google test内部是如何执行我们的单元测试用例的。
1. 获取并编译gtest
gtest试图跨平台,理论上,它就应该提供多个版本的binary包。但事实上,gtest只提供源码和相应平台的编译方式,这是为什么呢?google的解释是,我们在编译出gtest时,有些独特的工程很可能希望在编译时加许多flag,把编译的过程下放给用户,可以让用户更灵活的处理。这个仁者见仁吧,反正也是免费的BSD权限。
源码的获取地址:http://code.google.com/p/googletest/
svn checkout http://googletest.googlecode.com/svn/trunk/ googletest-read-only
怎么编译呢?
先进入gtest目录(解压gtest.zip包过程就不说了),执行以下两行命令:
- g++ -I./include -I./ -c ./src/gtest-all.cc
- ar -rv libgtest.a gtest-all.o
之后,生成了libgtest.a,这个就是我们要的东东了。以后写自己的单元测试,就需要libgtest.a和gtest目录下的include目录,所以,这1文件1目录我们需要拷贝到自己的工程中。
编译完成后怎么验证是否成功了呢?
- cd ${GTEST_DIR}/make
- make
- ./sample1_unittest
如果看到:
- Running main() from gtest_main.cc