单元测试是极限编程的重要组成部分,CPPUnit和Junit,Duit一样都是Erich Gamma 和 Kent Beck 编写的一个回归测试框架,是C++语言的一个很好的单元测试工具,以下介绍VC6.0下的CPPUnit的安装和使用。第一部分:CPPUnit的安装。1.下载CPPUnit:下载CPPUnit 压缩文件,2.?我用的是CPPUnit1.10.2
2. 编译工程文件:将CPPUnit1.10.2.tar.gz 解压缩到本地硬盘,如d:CPPUnit1.10.2,用VC6.0打开CPPUnit1.10.2中的工程文件CppUnitLibraries.dsw(用.net打开dsw工程文件,在弹出对话框中选全部转换位.net即可)选择 当前工程为TestPlugInRunner,选择Build菜单下Batch Build的页面, 将会有一对话框,选中所有Project,然后按build 按钮,将生成cppunit的库文件,其位置在CPPUnit1.10.2/lib目录下.(.net重新生成解决方案)3. 设置VC环境: 选择 Tools->Options菜单,选择Directories TAB页,在show directories for 下拉框中选择Include Files,增加路径CPPUnit1.10.2/include, 如我自己的是d: CPPUnit1.10.2 include.同样增加Libary files 路径CPPUnit1.10.2/LIB, source files 路径 CPPUnit1.10.2/SRC/CPPUNIT. (.net菜单为 工具—)选项—〉项目—〉VC++项目,包含文件加入d: CPPUnit1.10.2 include目录,库文件加入d: CPPUnit1.10.2/LIB)在菜单Tools->Customize出现的对话框中选Add-ins and Macro files中点击browse,并选择lib/TestRunnerDSPlugIn.dll.(.net不理会,用到时在源文件上面加入编译指令#pragma comment(lib,”xx.lib”)此时特别注意, 关闭VC6,在windows 的环境变量中设置path变量加一路径, cppunit/lib,如d:cppunit1.10.2lib,否则以后的测试工程中提示找不到动态连接库。(在我的电脑—)属性—)环境变量里可找到Path,在后面加上”;d:cppunit1.10.2lib”, 或者把lib下的文件复制到windowssystem32目录中)这时CPPUnit的环境已经配置好了,一般都可以手工创建工程,书写测试的代码,如下面的代码创建测试
void CHostAppApp::RunUnitTests()
{
CppUnit::MfcUi::TestRunner runner;
runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
runner.run();
}但是必须手动创建测试工程,非常的不方便。以下介绍的CppUnit Visual Studio Application Wizard 可自动创建好测试框架,我们只需书写TestCase和test方法即可。
第二部分:CppUnit Visual Studio Application Wizard v0.1安装(下面没有尝试,大家试试)1.下载CppUnitAppWizard.zip:文件在以下地址下载
http://www.sourcextreme.com/proj ... pUnitAppWizard.zip?
http://www.sourcextreme.com/projects/cppunit/CppUnitAppWizard.zip?
2.安装向导:将下载文件解压缩得到一个扩展名
3.为awx的向导文件;
4.将CppUnitTester.awx拷贝到VC的Template目录下。一般位置为Microsoft Visual StudioCommonMSDev98Template。这时重起VC就可在NEW Project下有一个 CPPUnit TestApp Wizard 向导。选择输入测试工程名即可创建一个测试工程,并且缺省的测试fixture 为SampleTest,这样和我们在 Junit中使用的一样,将所要测试文件添加到测试工程内,即可创建TestSuit,Testcase ,写测试方法。例如写一个测试方法TestLogin, 先在SampleTest 类头文件声明函数,在原文件实现它。并在SampleTest类中用宏 CPPUNIT_TEST( TestLogin ),将TestLogin加入。Build, run,可看到测试界面。在Browse中第一次是空的,点击Browse按钮,选择Test fixture,则可选择测试方法。点击run按钮,就可看到测试结果了。(我开始使用的1.8.0版本,一浏览就出错了,后来换成1.10.2版本就好了,不过还有内存泄露)。
感谢sourcextreme 为我们创建这么方便的工具。