`
igf80igf
  • 浏览: 18828 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

CPPUNIT使用说明

阅读更多

CPPUNIT使用说明
2010年08月04日
  CPPUNIT使用说明
  平    台:    winxp、VS2005 编写日期             2010-07-22
  第一步:下载 CPPUNIT的主页是http://sourceforge.net/projects/cppunit/
  (或者http://download.csdn.net/source/2568414),从这里可以获取它的源代码cppunit-1.12.1.tar。
  第二步:解压
  解压 cppunit-1.12.1.tar.gz到C:\cppunit-1.12.1或自己想要的目录(在此我放到F:\test下),如图:
  第三步:
  打开src/CppUnitLibraries.sln(有的下面是src/CppUnitLibraries.dsw),如果是VC 7及以上版本,会有一个对话框询问是否将工程转换成更高版本,选择"Yes to all"进行转换,如图:
  第四步:
  找到src\msvc6\DSPlugIn下的StdAfx.h文件,将#error This add-in is for VC++ 6.0 only.注释掉
  第五步:
  选择"Build | Batch Build...",选中所有的项目,点击build按钮。在lib下生成所需要的所有库文件(debug下)如图:
  注:链接过程中会报错:
  error C3505: cannot load type library '{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}'
  出错的文件是:src\msvc6\testrunner\MsDevCallerListCtrl.cpp。这是由于使用VC 8.0编译的缘故,需要修改一下它的源码,打开该文件,找到出错行(#67),将其替换为:
  #if _MSC_VER >= 1400 // VC++ 8 or more
  //The following #import imports EnvDTE based on its LIBID.
  #import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("8.0") lcid("0") raw_interfaces_only named_guids
  //The following #import imports EnvDTE80 based on its LIBID.
  #import "libid:1A31287A-4D7D-413e-8E32-3B374931BD89" version("8.0") lcid("0") raw_interfaces_only named_guids
  #else // vc7
  #import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("7.0") lcid("0") raw_interfaces_only named_guids
  #endif
  修改后重新编译。
  第六步:
  将include和lib文件夹加入到VC++的环境中。打开:Tools|Options|Projects and Solutions|VC++ Directories,将这两个文件夹的路径分别加入到Include files和Library files中。最好再将lib文件夹加入到系统环境变量PATH中,这样就不用再将其中的动态链接库拷到工程目录下而直接运行单元测试了。至此,CPPUnit的编译安装就完成了。
  如图:
  第七步:
  下载 CPPUnitProjectWizard http://cppunit.sourceforge.net/cppunit-wiki/CppUni tVisualStudio2005Wizard?action=AttachFile&do=get&ta rget=CPPUnitProjectWizard.7z(注:这个网址应经不能用了,在网上查了很久都没找到),建议到这下载:http://download.csdn.net/source/2568419
  第八步:
  CPPUnitProjectWizard.vsdir - 为向导命名
  CPPUnitProjectWizard.vsz - 让VS知道从哪里找到向导
  到Visual Studio 2005安装目录下的 VCProjects 文件夹中,… \VC\vcprojects下。 
  第九步:
  把整个CPPUnitProjectWizard解决方案文件夹复制到您的Visual Studio 8安装目录下的VCWizards文件夹中。如图:
  比如,我放在…\VC\VCWizards下
  或者,也可以放在你想放置的其它地方,然后编辑CPPUnitProjectWizard.vsz,定义参数 ABSOLUTE_PATH
  Param="ABSOLUTE_PATH = …VC\VCWizards\ CPPUnitProjectWizard"
  第十步:
  配置环境变量
  右键我的电脑->属性à高级->环境变量àPath  加上lib的路径,我的为E:\cppunitspace\cppunit\lib
  此时我们的环境就配置好了!接下来我们写一个例子:
  第一步:
  打开vs2005,新建一个MFC的项目名为:TestCppUnit如图:
  点击ok后弹出界面,勾选如图:
  Finish。此时项目建立好了。
  第二步:
  打开TestCppUnit.cpp文件,增加包含文件和声明使用库代码 #include  #include  #pragma comment(lib, "cppunitd.lib") #pragma comment(lib, "testrunnerud.lib") 如图:
  注:如果为Release版本声明使用库文件为
  #pragma comment(lib, "cppunit.lib")
  #pragma comment(lib, "testrunner.lib")
  第三步:
  找到InitInstance()函数:注释掉一下代码:
  CTestCppUnitDlgdlg;
  m_pMainWnd = &dlg;
  INT_PTRnResponse = dlg.DoModal();
  if (nResponse == IDOK)
  {
  // TODO: Place code here to handle when the dialog is
  //  dismissed with OK
  }
  elseif (nResponse == IDCANCEL)
  {
  // TODO: Place code here to handle when the dialog is
  //  dismissed with Cancel
  }
  增加一下代码:
  CPPUNIT_NS::MfcUi::TestRunnerrunner;
  runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() );
  runner.run();
  如图:
  第四步:
  编译运行出现如下图界面,此时未加任何用例的单元测试例子界面就出来了:
  第五步:
  添加测试代码 a)             添加一个c++类example,其基类是publicCPPUNIT_NS::TestFixture 
  b)             修改example.h
  如下:
  #pragmaonce
  #include
  #include
  classexample :publicCPPUNIT_NS::TestFixture
  {
  CPPUNIT_TEST_SUITE(example);
  CPPUNIT_TEST_SUITE_END();
  public:
  example(void);
  ~example(void);
  };
  c)             修改example.c
  如下:
  #include"stdafx.h"
  #include"example.h"
  CPPUNIT_TEST_SUITE_REGISTRATION(example);
  example::example(void)
  {
  }
  example::~example(void)
  {
  }
  d)             此时,编译运行,可以发现出现了测试包example e)        添加测试包初始化、结束函数setUp,tearDown(注意大小写)。以及添加测试用例testcase1,testcase2          说明,每一个用例,都会调用setUp和tearDown
  故而上述运行结果应该是:按出现顺序。
  f)        添加其他用例
  CPPUNIT_ASSERT是一个宏,判断后面的参数是否正确,CPPUNIT还有很多宏,如
  CPPUNIT_ASSERT(condition)                      // 确信condition为真
  CPPUNIT_ASSERT_MESSAGE(message, condition)     // 当condition为假时失败, 并打印message
  CPPUNIT_FAIL(message)                          // 当前测试失败, 并打印message
  CPPUNIT_ASSERT_EQUAL(expected, actual)         // 确信两者相等
  CPPUNIT_ASSERT_EQUAL_MESSAGE(message, expected, actual)// 失败的同时打印message
  CPPUNIT_ASSERT_DOUBLES_EQUAL(expected, actual, delta)   // 当expected和actual之间差大于delta时失败
  g)             单元测试结果
  假如测试中所有断言都通过,则结果为绿色。
  假如由一个断言失败,则显示红色,下面显示出错位置,且双击可以找到源代码位置。
  添加其他测试代码
分享到:
评论

相关推荐

    CPPUNIT使用说明与环境配置

    CPPUNIT使用说明与环境配置 CPPUNIT使用说明与环境配置 CPPUNIT使用说明与环境配置 CPPUNIT使用说明与环境配置 CPPUNIT使用说明与环境配置

    使用cppunit 使用说明

    使用cppunit 这是c++单元测试必备的资料。

    CppUnit 英文文档说明

    CppUnit 英文文档说明 ——非常全的帮助文件

    编译好的CppUnit库及使用说明

    最新CppUnit 1.12.0版本编译好的库,可以直接使用。VC++2008编译,测试通过。附带使用说明。

    CppUnit使用资料

    CppUnit相关API说明,详细使用方法

    CppUnit的改进与使用

    这个改进后的使用方法是我为一个企业培训时所准备的,由于学员以测试人员人主,编程基础较差,所以我采用了模板替换的方式,来建立...这个资源包含CppUnit已编译后的库和源代码,示例工程、示例测试工程、使用说明。

    C++ CPPUNIT 示例代码

    C++ cppunit单元测试示例代码,一个比较简单的工程,主要说明cppunit如何使用

    cppunit的使用

    这是关于CPPUNIT的使用说明 对软件测试是很大的帮助

    cppunit单元测试工具

    cppunit单元测试工具、使用说明文档及其相关license

    单元测试框架cppunit在qnx上移植

    单元测试框架cppunit在qnx上的编译,有编译好的目标文件及源码,及编译说明。

    ActiveMQ-CPP组件集合

    包含activemq-cpp-library-3.9.4-src.zip、apr-1.6.2-win32-src.zip、apr-iconv-1.2.1-win32-src-r2.zip、apr-util-1.6.0-win32-src.zip、cppunit-1.12.1.tar.gz、libexpat-R_2_2_2.zip和编译说明。

    C++轻量级通用插件框架源码

    代号为X3的C++轻量级通用插件框架平台是一套通用的C++轻量级插件体系,由多个独立插件模块组成。应用程序可以基于X3插件框架进行快速开发,X3插件框架中的插件既可以单独使用,又可以....\Doc\插件基础使用说明书.pdf

    leetcode和oj-OJ:在线裁判

    leetcode 和 oj 奥杰 VS2010在线裁判解决方案,OJ问题来自: leetcode.com 目录和文件说明: OJ.h -- Code OJTest.h\cpp -- Test Case File\OJ_Prj -- cppunit seed prj

    ujvm:uJVM-微型Java虚拟机

    ujvm uJVM-Micro Java虚拟机伪像: ujvm.o (默认的make目标)-要与标准C库(或其等效库)链接的目标文件java (with make java ) make java的独立微型jvm实现对于64位Ubuntu 18.04的说明: 安装: sudo apt-get ...

Global site tag (gtag.js) - Google Analytics