Linux下C/C++的单元测试CUNIT

大家做后台服务时,经常会使用Debug进行调试,但是跟多在项目编译之前,如果想测试某个业务逻辑或者基础库的功能,可以使用CUNIT工具进行处理。

一.CUnit概要

CUnit是一个使用C语言编写开源的白盒测试用例工具,管理和运行单元测试的系统。CUnit作为一个静态库连接到用户的测试代码当中。

CUnit使用一个简单框架来构建测试结构,并且为测试公用数据类型提供了一组断言函数。除此之外,还为运行测试和生成的是报告提供了很多不同的接口。

包括为代码控制的测试和生成报告提供了自动化测试接口,同时交互式接口是用户能够动态的运行测试和查看结果。

二.CUnit组成和结构

1.CUnit.h在用户的测试中使用的断言宏和包含其他的框架头文件

2.CUnit结构

CUnit是一个的独立于平台的测试框架,核心框架是提供基本的测试注册薄,测试包和测试用例的管理服务。

测试注册薄

|

-------------------------

|                         |

测试包‘1’               测试包‘2‘

|                         |

------------             --------------

|            |           |              |

测试用例‘11‘  测试用例‘12‘

三.CUnit一般用法

CUnit框架的一个典型的使用顺序为:

1.为测试编写函数(如果需要的话编写测试包的init/cleanup函数)

2.初始化测试注册薄--CU_initialize_registry()

3.添加测试包到测试注册-CU_add_suite();

4.添加测试用例到测试包--CU_add_test();

5.用适当的接口函数运行测试,例如:CU_CONSOLE_RUN_TESTS()

6.清理测试注册薄CU_cleanup_registry();



时间: 2024-11-01 16:21:01

Linux下C/C++的单元测试CUNIT的相关文章

CUnit详解(基于linux下的白盒单元测试)

CUnit是一个对C语言编写的程序进行单元测试的框架,在线文档说它作为一个静态链接库被链接到用户的测试代码中. 它提供了一种简洁的框架来建立测试架构,并提供丰富的断言(Assertion)来测试通用数据类型.除此之外,它还提供了 许多不同的结构来运行测试用例和报告测试结果. (1)CUnit的架构 可以看出Cunit也是有组织的,主要分几个角色,Registry,Suite及Test方法.可以通过下面例子,体会到这种组织关系. 按官方文档说明,使用Cunit的主要步骤有: 1) Write fu

Linux下Makefile的automake生成全攻略

作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将给大家介绍如何使用 autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用“./configure”,“make”,“make instal”就可以把程序安装到Linux

linux下junit测试用例编译与运行配置

1.linux下Java程序的编译与运行 linux 下编译Java代码的command line模式: javac -cp .:./lib/sequoiadb.jar ./com/sequoiadb/test/CsAndClOperation.java linux 下编译Java代码的command line模式: java -cp .:./lib/sequoiadb.jar com.sequoiadb.test.CsAndClOperation 2.linux下Junit测试用例的编译与运行

Linux下c/c++项目代码覆盖率的产生方法

最近做了一系列的单元测试相关的工作,除了各种规范及测试框架以外,讨论比较多的就是关于代码覆盖率的产生,c/c++与其他的一些高级语言或者脚本语言相比较而言,例如 Java..Net和php/python/perl/shell等,由于没有这些高级语言和脚本语言的反射的特性,其代码覆盖率的产生过程会稍微复杂一些.发现许多同学对C++的覆盖率如何产生在都不太清楚,这里做一个简单的介绍. 一.基本使用方法 在Linux上的c/c++开发一般都使用gcc/g++作为主要的编译器,如果需要产生覆盖率数据需要

Linux下搭建jenkins+svn+http+maven自动化部署

服务器设置: 卸载redhat的yum,安装centos的yum,配置第三方yum 1.删除redhat原有的rpm -qa |grep yum |xargs rpm -e yum --nodeps 2.下载yum安装文件,如果下载时找不到文件,http://mirrors.163.com/centos/6/os/x86_64/ wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.27-14.el6.centos.noa

Linux下autoconf和automake使用

作为Linux下的程序开发人员,一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用"./configure","make","make instal&

Linux下Maven的安装与使用

pache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供.基于项目对象模型(POM)概念,Maven利 用一个中央信息片断能管理一个项目的构建.报告和文档等步骤.曾是Jakarta项目的子项目,现为独立Apache项目. 现在有很多Apache项目都已经开始采用Maven进行管理. 本篇文章简单介绍了Maven的相关知识,以及在Linux下的安装与使用方法.如果需要进一步了解Maven,请移步Maven官网. http://maven.apa

完整版linux下android源码下载、编译、模拟器启动运行

一.环境说明: 1.VMware版本:8.0.3 build-703057 2.liunx系统:Ubuntu10.10 3.jdk:sun-java6-jdk 二.Ubuntu 10.10更新源列表 由于??Ubuntu 10.10版本的源已经过期了,所以,需要对其进行更新,Ubuntu 10.10 已经发布了,下面提供更新源方法与更新源列表地址: 1.sudo gedit /etc/apt/sources.list     编辑你的源列表,将原来的内容全部删除,添加下面的源,复制到你的列表中,

Linux下WebSphereV8.5.5.0 安装详细过程

Linux下WebSphereV8.5.5.0 安装详细过程 自WAS8以后安装包不再区别OS,一份介质可以安装到多个平台.只针对Installation Manager 进行了操作系统的区分 ,Websphere产品介质必须通过专门的工具Install Managere安装.进入IBM的官网http://www.ibm.com/us/en/进行下载.在云盘http://yun.baidu.com/share/linkshareid=2515770728&uk=4252782771 中是Linu