FROM:http://blog.csdn.net/virtualpower/article/details/7103464


Google C++ unit test 是一款很不错的单元测试工具,易于构建单元测试例。我们在项目中也使用了此款工具,本文主要描述如何在ARMAndroid 2.3 环境下编译及使用googleC++ unit test 工具。本文假设读者已具备googleC++ unit test相应的基本知识。 如需了解基本知识,请参阅http://code.google.com/p/googletest/


1.      编译

我们项目所用的编译器:arm-linux-androideabi-g++及其相应工具链

http://code.google.com/p/googletest/downloads/detail?name=gtest-1.6.0.zip处获取gtest-1.6.0.zip

a)     下载解压后,需更新build-aux目录下的 config.sub 。此为必须,否则将不能识别arm-linux-androideabi工具链。Config.sub可从http://gcc.gnu.org/svn/gcc/branches/cilkplus/config.sub 获取。

b)     然后执行./configure –host= arm-linux-androideabi

c)      此后会生成Makefile 文件, 接着我们需要编辑Makefile文件, 改动CXXFLAGS为     CXXFLAGS = -g -O2 –DANDROID  。 此为必须,否则编译不能通过。

d)     最后执行make ,  在lib/.lib/目录下生成了libgtest.a文件。


2.      使用

假设项目只有两个文件: a.cpp;main.cpp 。

a)     a.cpp 为主要被测文件,为此我们创建了一个测试文件,其中包含对a.cpp的测试例,命名为a_unittest.cpp。

b)     修改main函数为如下:

Int main(int argc, char *argv[])

{

               testing::InitGoogleTest(&argc,argv);

              returnRUN_ALL_TESTS();

}

c)      修改被测项目的Makefile ,一使其包含gtest的include目录。二使其在link时,需加上libgtest.a文件,即最终可执行文件应为如下link而成: a.o + main.o  + a_unittest.o+ libgtest.a


运行此可执行文件即为运行单元测试例