CUnit - A Unit Test Framework For C

本文介绍了CUnit,一个适用于C语言的开源白盒测试框架,它提供了简单的单元测试支持和多种测试模式。文章详细阐述了如何在项目中使用CUnit,包括编译静态库、注册测试套件和用例,以及CUnit的不同运行模式,特别提到了Automated模式生成的XML测试结果需要特定的DTD和XSL文件支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(C)2009 蒋维

 

最近项目组想把用了一段时间的中间件API做一个单体测试,找了半天没有找到一个好的测试方法。最开始打算手动写点用力然后逐条测,但是log信息不好整理。突然发现CUnit这个东东。研究了一下。

 

继JUunit CppUnit的成功后, C语言环境下也出现了开放源码的白盒测试框架CUnit。CUnit在LGPL协议下以源代码形式提供给用户使用,用户可以编写程序时加入框架代码或直接链接编译好的静态库。它提供了一个简单的单元测试框架,并且为常用的数据类型提供了丰富的断言语句支持。 目前稳定版本为:CUnit-2.1-0。

 

由于这个东东基于LGPL所以我们就不能直接用它的源代码了(不然老板会杀了我的:))。所以只能给编成静态库来调用了(这下老板就happy了)。但是默认提供的Makefile在Linux下只能用gcc编译成库。和我们项目的的交叉编译环境的目标机硬件环境不兼容。还好有CUnit的源文件不多,手动用目标机的编译器编译成了库文件。这下用起来就happy多了,直接在工程里面加上库。

 

CUnit的组织结构如下图:

每个CUnit实例只能有一个Registy存在。

每个Registy能够注册多个Suit(从代码来看好像是255个,记不清楚了…)。Suit映射到项目就可以是各个模块。

最后每个Suit又可住注册多个手工写好的Case。也就是要测试的API用例。

 

CUnit结构图

 

用例注册一般是下面几步:

1.初始化框架

2.初始化Registy

3.向Registy注册Suit

4.向Suit注册Case

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值