您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > cppUnit
如何使用CppUnit进行单元测试
作者:网络转载 发布时间:[ 2013/12/23 11:39:41 ] 推荐标签:

一、前言

  测试驱动开发(TDD)是以测试作为开发过程的中心,它坚持,在编写实际代码之前,先写好基于产品代码的测试代码。开发过程的目标是首先使测试能够通过,然后再优化设计结构。测试驱动开发式是极限编程的重要组成部分。XUnit,一个基于测试驱动 开发的测试框架,它为我们在开发过程中使用测试驱动开发提供了一个方便的工具,使我们得以快速的进行单元测试。XUnit的成员有很多,如 JUnit,PythonUnit等。给大家介绍的CppUnit即是XUnit家族中的一员,它是一个专门面向C++的测试框架。

  本文不对CppUnit源码做详细的介绍,而只是对CppUnit的应用作一些介绍。你将看到:

  1、CppUnit源代码的各个组成部分;

  2、怎样设置你的开发环境以能够使用CppUnit;

  3、怎样为你的产品代码添加测试代码(实际上应该反过来,为测试代码添加产品代码。在TDD中,先有测试代码后有产品代码),并通过CppUnit来进行测试;

  本文叙述背景为:CppUnit1.12.0, Visual C++ 6.0, WindowsXP。文中叙述有误之处,敬请批评指正。

一. CppUnit的安装

  从http://sourceforge.net/projects/cppunit CppUnit的源码包. CppUnit是开源产品 , 当前高版本为1.12.0. (在上面的链接所指向的页面上选择 Development Snapshot ).

  下载后,将源码包解压缩到本地硬盘,例如解压到E: cppunit-1.12.0。笔者把文件夹名称中的版本号去掉,即源码包解压缩到E:cppunit。下载解压后,你将看到如下文件夹:

  主要的文件夹有:

    doc: CppUnit的说明文档。另外,代码的根目录,还有三个说明文档,分别是INSTALL,INSTALL-unix,INSTALL-WIN32.txt;
    examples: CpppUnit提供的例子,也是对CppUnit自身的测试,通过它可以学习如何使用CppUnit测试框架进行开发;
    include: CppUnit头文件;
    src: CppUnit源代码目录;
    config:配置文件;
    contrib:contribution,其他人贡献的外围代码;
    lib:存放编译好的库;
    src:源文件,以及编译库的project等;

  接下来进行编译工作。 在src/目录下, 将CppUnitLibraries.dsw工程文件用vc 打开。执行build/batch build,编译成功的话,生成的库文件将被拷贝到lib目录下。中途或者会有些project编译失败,一般不用管它,我们重点看的是cppunit和TestRunner 这两个project的debug和release版本。

  编译通过以后, 在lib/目录下,会生成若干lib,和dll文件, 都以cppunit开头. cppunitd表示debug版, cppunit表示release版。

  CppUnit为我们提供了两套框架库,一个为静态的lib,一个为动态的dll。cppunit project:静态lib;cppunit_dll project:动态dll和lib。在开发中我们可以根据实际情况作出选择。

  你也可以根据需要选择所需的项目进行编译,其中项目cppunit为静态库,cppunit_dll为动态库,生成的库文件为:

    cppunit.lib:静态库release版;
    cppunitd.lib:静态库debug版;
    cppunit_dll.lib:动态库release版;
    cppunitd_dll.lib:动态库debug版;

  另外一个需要关注的project是TestRunner,它输出一个dll,提供了一个基于GUI 方式的测试环境,在CppUnit下, 可以选择控制台方式和GUI方式两种表现方案。两种方案分别如下图所示:

  我们选择GUI方式,所以我们也需要编译这个project,输出位置亦为lib文件夹。

  要使用CppUnit,还得设置好头文件和库文件路径,以VC6为例,选择Tools/Options/Directories,在Include files和Library files中分别添加%CppUnitPath%include和%CppUnitPath%lib,其中%CppUnitPath%表示 CppUnit所在路径。本文这里分别填的是E:CPPUNITINCLUDE和E:CPPUNITLIB。

上一页12345下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd