单元测试是极限编程的重要组成部分,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,?
选择 当前工程为TestPlugInRunner,选择Build菜单下Batch Build的页面, 将会有一对话框,选中所有Project,然后按build 按钮,将生成cppunit的库文件,其位置在CPPUnit1.10.2/lib目录下.
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.
在菜单Tools-Customize出现的对话框中选Add-ins and Macro files中点击browse,并选择lib/TestRunnerDSPlugIn.dll.
此时特别注意, 关闭VC6,在windows 的环境变量中设置path变量加一路径, cppunit/lib,如d:\cppunit1.10.2\lib,否则以后的测试工程中提示找不到动态连接库。
这时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/projects/cppunit/CppUnitAppWizard.zip?
2.?安装向导:将下载文件解压缩得到一个扩展名3.?为awx的向导文件,4.?将CppUnitTester.awx拷贝到VC的Template目录下。一般位置为Microsoft Visual Studio\Common\MSDev98\Template。
这时重起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 为我们创建这么方便的工具。