1、下载
地址:http://code.google.com/p/googletest/downloads/list
当前最新版本为 gtest-1.6.0
2、编译
解压 gtest-1.6.0.zip,目录结构如下:
图 1 :gtest 目录结构
进入 msvc 目录,存在 gtest.sln、gtest-md.sln,打开解决方案 gtest-md.sln。(也可以选择gtest.sln,两个解决方案的不同点是,gtest.sln 默认的运行时库配置为:多线程调试(/MTd),gtest-md.sln 默认的运行时库配置为:多线程调试 DLL (/MDd)。关键就是要和你使用 gtest 进行测试的项目的运行时库一致,“多线程调试 DLL (/MDd)” 是新建项目的默认运行时库配置,所以选择 gtest-md.sln 以后使用方便。)
gtest-1.6.0 下的解决方案为 VS 2003 格式,打开后 VS2008 会自动将其转换为 VS2008 格式。然后,执行“生成解决方案”。
在 msvc 目录下会生成 gtest-md 文件夹,目录结构如下:
图 2 :gtest-md 目录结构
如果在 Debug 目录中看到 gtestd.lib、gtest_main-mdd.lib、gtest_unittest.exe、gtest_prod_test.exe 则说明编译成功了。
3、配置
为了方便配置和以后升级版本,先添加一个系统环境变量。
变量名:GTEST_HOME
变量值:C:\gtest-1.6.0
接着配置 VC++ 目录。
打开 VS2008 “工具”->“选项”->“项目和解决方案”->“VC++ 目录”,添加
可执行目录:$(GTEST_HOME)\msvc\gtest-md\Debug
包含文件:$(GTEST_HOME)\include
引用文件:$(GTEST_HOME)\msvc\gtest-md\Debug
库文件:$(GTEST_HOME)\msvc\gtest-md\Debug
源文件:$(GTEST_HOME)\src
4、测试
新建 “Win 32 控制台应用程序”,名称:gtestSample,“不使用预编译头”,“空项目”。到 $(GTEST_HOME)/samples 目录下拷贝 sample1.cc、sample1.h、sample1_unittest.cc 文件到 gtestSample 项目目录,并添加到 gtestSample 项目中。然后新建 gtest_main.cc 源文件:
- #include <iostream>
- #include <gtest/gtest.h>
- int main(int argc, char * argv[])
- {
- testing::InitGoogleTest(&argc, argv);
- return RUN_ALL_TESTS();
- };
图 3:gtestSample 项目结构
右击 gtestSample 项目->”属性”->”连接器”->“输入”->“附加依赖项”,添加:gtestd.lib
项目配置完成,点击“生成解决方案”,然后“运行”。
图 4:gtestSample 运行结果
大公告成,gtest 相比 CppUnit 使用起来简单很多,研究一下 samples 目录中的例子就可以了解基本的编写单元测试的方法。
参考: