我要开始一个新项目,并决定尝试一下大家一直谈论的单元测试。该项目是一组C库(因此不需要UI或用户交互测试),旨在跨平台运行,首要目标是Linux、FreeBSD和Windows,一旦第一个版本发布(假设我能得到一台运行OS X的机器进行测试),则计划支持OS X。请问有没有人对一个能够轻松跨多个平台工作的好的C单元测试框架有任何经验或建议?
在我写C代码的时候,我的单元测试都是临时性的,没有使用任何框架。因此,我无法推荐任何工具。但你可以看一下这个C/C++单元测试工具列表:http://www.opensourcetesting.org/unit_c.php。
我最初使用minunit,然后根据我的需求进行了改进。与测试框架的测试套件支持不同,我只使用make来构建和运行不同的可执行文件,每个文件中包含十几个相关的测试用例。所以现在我有大约250行的宏,主要用于打印不同类型或进行字符串或内存比较,这已经足够了。
我已经对tap(向下滚动到接近底部)产生了相当的偏爱,因为它很容易放置。它代表“测试任何协议”。如果使用过去5年发布的编译器,则不会遇到太多可移植性问题,但我只尝试过gcc / glibc。
我使用自己的单元测试框架CUnitWin32来进行嵌入式C编程。我的主机开发环境是Win32,因此在线上可用的框架仅适用于Windows。但是,我也将其移植到了Linux上,因此如果该框架适用于您,请在此处留下评论,我们将想办法为您提供Linux版本。
D