《最新CppUnit构建步骤及实例演练.doc》由会员分享,可在线阅读,更多相关《最新CppUnit构建步骤及实例演练.doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateCppUnit构建步骤及实例演练CppUnit构建步骤及实例演练CppUnit构建步骤及实例演练一、 设置CppUnit环境1、 我们把CppUnit解压,然后打开src/目录下的CppUnitLibraries.dsw文件2、 打开文件后,我们不要build和运行,应执行build-batch build,我们只要选择所有的win32 Debug就行了,如图1-1总
2、共一起是6项。3、 然后就可以编译执行了,完后,他会在lib/文件下生成库文件,如图1-2图 1-1图 1-24、 设置头文件和库文件路径,执行Tools-options-Directories,如图1-3,然后在Show directions for:中选择文件类型(记得三个都要选择哦),在directores:里面添加你安装文件下的include文件(另外两个也要对应)。点击确定。然后记得要保存工程(file-save workspace)图 1-3二、 初识CppUnit测试环境1、 进入安装目录下的example文件夹下,打开examples.dsw文件。2、 将CppUnitTest
3、App工程设为活动工程如图1-4,然后编译运行,我们可以看到一个基于GUI方式的单元测试TestRunner界面(图1-5)3、 将CppUnitTestMain工程设置为活动工程,编译运行,我们可以看到他是一个基于文本方式的单元测试环境(图1-6) 图 1-4图 1-5图 1-6三、CppUnitDemoFactorial构建步骤(以一个Factorial函数为测试实例)1、新建一个基于对话框的工程CppUnitDemoFactorial.可编译运行。(选择file-new-Projects-MFC AppWizard(exe),在Project name:里面填上:CppUnitDemoF
4、actorial,点击OK,然后选择“基于对话框(Dialog based),选择完成)2、 设置工程属性:Project-Settings,如图1-7单击C+选项卡,在Category:中选择C+ Language,然后再选中Enable Run-Time Type Information(RTTL);然后在单击Link选项卡,在Object/library modules:中填入(cppunitd.lib testrunner.lib),最后单击OK图 1-73、将Factorial.cpp和Factorial.h添加到工程中(文件下载1、下载2)添加方法:Projiect-Add To
5、Project-files,选中你的文件(记得要把你的文件放在你的工程文件夹下);然后编译运行,会出现一下错误代码:fatal error C1010: unexpected end of file while looking for precompiled header directive解决方法:打开图1-7,单击C+选项卡,在Category:中选择Precompiled Headers,然后选中Not Using Precompiled Headers,然后保存,再build就不会出错了。4、新建测试类:CFactorialTestCase,派生于CppUnit:TestCase操作步
6、骤:Insert-New Class,会弹出一下对话框,并根据下图填写4、为CFactorialTestCase类添加factorialTest成员函数:右击此类-Add member function 弹出对话框,按下图填写:5、 给成员函数添加函数体,语句如下:CPPUNIT_ASSERT_EQUAL(0,Factorial(-5);/这是测试语句CPPUNIT_ASSERT_EQUAL(1,Factorial(0); CPPUNIT_ASSERT_EQUAL(6,Factorial(3);解释:括号中0、1、6是期望值,Factorial(x)是对应测试的函数6、 在CFactorial
7、TestCase类的定义文件中(FactorialTestCase.h),添加一下代码#include #include #include #if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000class CFactorialTestCase : public CppUnit:TestCase CPPUNIT_TEST_SUITE(CFactorialTestCase);CPPUNIT_TEST(factorialTest);CPPUNIT_TEST_SUITE_END();public:void FactorialTest();CFactori
8、alTestCase();virtual CFactorialTestCase();10、 在FactorialTestCase.cpp中添加一下代码:/ Construction/Destruction/CPPUNIT_TEST_SUITE_REGISTRATION(CFactorialTestCase);CFactorialTestCase:CFactorialTestCase()11、 在CppUnitDemoFactorial.cpp中添加一下代码:在文件的最开头添加一下头文件包涵语句:#include #include 在InitInstance()函数中添加一下代码,并把其他所有代
9、码注释掉BOOL CCppUnitDemoFactorialApp:InitInstance()AfxEnableControlContainer();CppUnit:MfcUi:TestTunner runner;runner.addTest(CppUnit:TestFactoryRegistry:getRegistry().makeTest();runner.run();return TRUE;12、 按道理说现在可以运行了,不过,呵呵大家别急哦,如果你现在运行就会出一下错误提示解决方法:把CppUnit安装文件下的llib/下的testrunner.dll复制到你的工程目录下就可以了13、 做完以上所有步骤后,我们就可以运行了,运行结果如下呵呵我相信大家都知道这是告诉我们,我们的程序要错,但错误在那呢? ,这就留给大家自己去找吧-