Tuesday, September 28, 2004

参考别人的经验,终于让CppUnit编译成功了

奇怪的是,直接按照install-windows.txt编译竟然没有vs plugin 出来,看了CppUnit集成到VC6.0中去--才正确编译,不过时间好长啊。以下为转载。

CppUnit集成到VC6.0中去

cppunit是用于为C++代码写单元测试的一个开源框架。为了更有效的熟悉和维护某个别人用C/C++编写的服务器的源代码,我决定用cppunit给原来的代码写单元测试代码,希望在熟悉源码的同时也对源码进行一定程度的单元测试和修改。
要将其集成到VC6.0的环境中需要如下一些步骤,要注意的是,我的项目是MFC exe的,其他的,没有试过,不知道是否适用:

1. 下载cppunit相关包和文档
到http://sourceforge.net/projects/cppunit上下载Latest File Releases,目前最新的是1.10.2版。
下载其中的三个包:
cppunit-1.10.2.tar.gz cppunit的源码和一些单元测试代码的编写例子,可以直接用vc6.0打开编译
cppunit-docs-1.10.2.tar.gz cppunit的文档
MSDNIntegrator-1.0.zip 这个可以把cppunit的帮助文档集成到msdn上的,解压之后,按照Installing-Doc.txt文件中的说明作就可以了
2. 编译cppunit对应的库文件
假设cppunit-1.10.2.tar.gz解压之后的目录路径为 $CppUnitPath$
用vc6.0的open workspace导入$CppUnitPath$/src下的文件CppUnitLibraries.dsw
选择Project->Set Active Project为TestPlugInRunner
打开Build->Batch Build的页面:选中所有Project,然后build
bulid的结果将生成cppunit的库文件,并自动将其复制到$CppUnitPath$/lib目录下
生成的文件有:
cppunit.lib : CppUnit静态库“Multithreaded DLL”
cppunitd.lib : CppUnit静态库“Debug Multithreaded DLL”
cppunit_dll.dll : CppUnit动态库(DLL)“Multithreaded DLL”
cppunit_dll.lib : CppUnit动态导入库“Multithreaded DLL”
cppunitd_dll.dll : CppUnit动态库(DLL)“Debug Multithreaded DLL”
cppunitd_dll.lib : CppUnit动态导入库“Debug Multithreaded DLL”
testrunner.dll : MFC TestRunner动态库(DLL)“Multithreaded DLL”
testrunner.lib : MFC TestRunner导入库“Multithreaded DLL”
testrunnerd.dll : MFC TestRunner动态库(DLL)“Debug Multithreaded DLL”
testrunnerd.lib : MFC TestRunner导入库“Debug Multithreaded DLL”
testrunneru.dll : MFC Unicode TestRunner动态库(DLL)“Multithreaded DLL”
testrunneru.lib : MFC Unicode TestRunner导入库“Multithreaded DLL”
testrunnerud.dll : MFC Unicode TestRunner动态库(DLL)“Debug Multithreaded DLL”
testrunnerud.lib : MFC Unicode TestRunner导入库“Debug Multithreaded DLL”
TestRunnerDSPlugIn.dll : 注册到你的VC++中的附加件,当测试运行出现错误的时候,可以在测试界面上点击对应的行,即可在测试代码中定位出错的位置。
但是跟网上找到的资料相比,缺少了如下两个文件,不过网上的那些是比1.10.2要早的版本(比如1.8.0版本),所以先暂时不管这些。
qttestrunner.dll : QT TestRunner动态库(DLL)“Multithreaded DLL”
qttestrunner.lib : QT TestRunner导入库“Multithreaded DLL”
3. 集成到vc6.0环境下的应用程序项目中去(我集成的是MFC exe类型的项目)
接下来在vc里集成cppunit(Release和Debug两种都可以):
Project->Settings->General,选择"Use MFC in a Shared DLL"
Project->Settings->C/C++的Category中选择"Code Generation",对应得Use run-time libery选择"Debug Multithreaded DLL"
Project Settings/C++/C++ Language,RTTI有个开关,此前的版本,都要打开这个开关才行,这个版本不打开也行,据说现在的版本就不用操作这一步了。
Tools->Options->Directories页面,"include files"添加$CppUnitPath$/include目录,"Liberay files"添加$CppUnitPath$/lib目录
Tools->Customize->Add-ins and Macro files中点击browse,并选择lib/TestRunnerDSPlugIn.dll
4. 最后,如果你安装了visual_assist6.0的话,为了能够在编码时获取CppUnit的提示,需要在visual assist Options里配置Directories页面,添加对应得include目录和src目录。

This page is powered by Blogger. Isn't yours?