在Win32平台如何编译单元测试的代码?(readme文件并没有明确指出,我们需要自行配置)
1. 单元测试从何处运行?
其main函数位于gtest_main.cc文件中,如下。
2. Win32平台如何配置?
综上分析,在Win32平台,要编译、运行自己编写的单元测试,要进行以下设置(以vs2005为例)。
假设环境变量
GTEST_ROOT=E:/opensource/gtest-1.5.0
2.1 在IDE中编译
Step1. 设置vs2005
Tools->options->projects and solutions->VC++ directories
->Include files: 添加$(GTEST_ROOT)/include、$(GTEST_ROOT)
->Library files: 添加$(GTEST_ROOT)/lib
此处的Library files也可以不添加$(GTEST_ROOT)/lib。
Step2. 将gtest_main.cc和gtest-all.cc添加到工程
Step3. 编译使用google test编写的单元测试
2.2 通过命令行编译
(1) 配置
通过命令行编译,需要设置环境变量INCLUDE,在其后添加%GTEST_ROOT%;%GTEST_ROOT%/include
例如,笔者机器上环境变量INCLUDE的值为:
%VCInstallDir%/ATLMFC/INCLUDE;%VCInstallDir%/INCLUDE;%VCInstallDir%/PlatformSDK/include;%VSInstallDir%/SDK/v2.0/include;%ACE_ROOT%;%BOOST_1_40_ROOT%;%CPPUNIT_ROOT%/include;%GTEST_ROOT%;%GTEST_ROOT%/include
(2) 命令
环境变量INCLUDE配置后,该如何写命令呢?
cl /wd 4530 /nologo test.cpp sample.cpp %GTEST_ROOT%/src/gtest_main.cc %GTEST_ROOT%/src/gtest-all.cc
当然,我们可以写一个bat文件自动执行,如make.bat,内容如下。