CppUnit构建步骤及实例演练

CppUnit构建步骤及实例演练

一、设置CppUnit环境

1、我们把CppUnit解压,然后打开src/目录下的CppUnitLibraries.dsw文件

2、打开文件后,我们不要build和运行,应执行build->batch build,我们只要选择所有的win32 Debug就行了,如图1-1总共一起是6项。

3、然后就可以编译执行了,完后,他会在lib/文件下生成库文件,如图1-2

图 1-1 图 1-2

4、设置头文件和库文件路径,执行Tools->options->Directories,如图1-3,然后在Show directions for:中选择文件类型(记得三个都要选择哦),在directores:里面添加你安装文件下的include文件(另外两个也要对应)。点击确定。然后记得要保存工程(file->save workspace)

图 1-3

二、初识CppUnit测试环境

1、进入安装目录下的example文件夹下,打开examples.dsw文件。

2、将CppUnitTestApp工程设为活动工程如图1-4,然后编译运行,我们可以看到一个基于GUI方式的单元测试TestRunner界面(图1-5

3、将CppUnitTestMain工程设置为活动工程,编译运行,我们可以看到他是一个基于文本方式的单元测试环境(图1-6

         

       图 1-4 图 1-5

图 1-6

三、CppUnitDemoFactorial构建步骤(以一个Factorial函数为测试实例)

1、新建一个基于对话框的工程CppUnitDemoFactorial.可编译运行。

(选择file->new->Projects->MFC AppWizardexe,Project name:里面填上:CppUnitDemoFactorial,点击OK,然后选择“基于对话框(Dialog based),选择完成)

2、设置工程属性:Project->Settings,如图1-7单击C++选项卡,在Category:中选择C++ Language,然后再选中Enable Run-Time Type InformationRTTL);然后在单击Link选项卡,在Object/library modules:中填入(cppunitd.lib  testrunner.lib),最后单击OK

图 1-7

3Factorial.cppFactorial.h添加到工程中(文件下载1下载2

添加方法:Projiect->Add To 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

操作步骤: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));

解释:括号中016是期望值,Factorialx)是对应测试的函数

6、在CFactorialTestCase类的定义文件中(FactorialTestCase.h),添加一下代码

#include <cppunit/TestCase.h>

#include <CppUnit/extensions/HelperMacros.h>

#include <Factorial.h>

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

class CFactorialTestCase : public CppUnit::TestCase  

{

CPPUNIT_TEST_SUITE(CFactorialTestCase);

CPPUNIT_TEST(factorialTest);

CPPUNIT_TEST_SUITE_END();

public:

void FactorialTest();

CFactorialTestCase();

virtual ~CFactorialTestCase();

};

10、在FactorialTestCase.cpp中添加一下代码:

//

// Construction/Destruction

//

CPPUNIT_TEST_SUITE_REGISTRATION(CFactorialTestCase);

CFactorialTestCase::CFactorialTestCase()

{

11、在CppUnitDemoFactorial.cpp中添加一下代码:

在文件的最开头添加一下头文件包涵语句:

#include <cppunit/ui/mfc/TestRunner.h>

#include <cppunit/extensions/TestFactoryRegistry.h>

InitInstance()函数中添加一下代码,并把其他所有代码注释掉

BOOL CCppUnitDemoFactorialApp::InitInstance()

{

AfxEnableControlContainer();

CppUnit::MfcUi::TestTunner runner;

runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());

runner.run();

return TRUE;

12、按道理说现在可以运行了,不过,呵呵……大家别急哦,如果你现在运行就会出一下错误提示

解决方法:把CppUnit安装文件下的llib/下的testrunner.dll复制到你的工程目录下就可以了

13、做完以上所有步骤后,我们就可以运行了,运行结果如下

呵呵……我相信大家都知道这是告诉我们,我们的程序要错,但错误在那呢? ,这就留给大家自己去找吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值