`

最简单的C语言单元测试框架

阅读更多

资料来自Internet。最简单的C语言单元测试框架,只有一个3行的头文件。如下:

 

$ cat test/mini_test.h

#define mini_assert(message, test) do { if (!(test)) return message; } while (0)

#define mini_test(test) do { char *message = test(); tests_run++; if (message) return message; } while (0)

extern int tests_run;

 

使用方法:

$ cat test/test_all.c

 

#include <stdio.h>  /*For printf*/

#include "mini_test.h"

 

int tests_run =0;

static char *test1() {

    mini_assert("must be true", 1==1);

    return 0;

}

static char *all_tests() {

    mini_test(test1);

    return 0;

}

 

int main(int argc, char **argv) {

    char *result = all_tests();

    if (result != 0) {

        printf("%s\n", result);

    } else {

        printf("ALL TESTS PASSED\n");

    }

    printf("Tests run: %d\n", tests_run);

    return result != 0;

}


由于该测试框架十分简单,所以可以很容易用于嵌入式系统开发,如MTK的C语言开发。

分享到:
评论

相关推荐

    一个简单的C语言测试框架

    标题中的“一个简单的C语言测试框架”指的是作者创建了一个用于C语言程序的轻量级测试工具,这个工具可能被命名为“STest”。测试框架在软件开发中扮演着至关重要的角色,尤其是在采用Test-Driven Development(TDD...

    EmbedC_TDD__1 Keil中搭建自动化单元测试框架Unity

    本主题将聚焦于如何在基于C语言的嵌入式环境,特别是在Keil IDE中,利用Unity这个轻量级的单元测试框架来搭建自动化测试流程。 Unity是一个专门为微控制器和嵌入式系统设计的开源单元测试框架。它的特点是小巧、...

    cpp-CHEAT一个非常简单的C编程语言单元测试框架

    **C++ CHEAT 单元测试框架详解** `cpp-CHEAT` 是一款专为C编程语言设计的轻量级单元测试框架。它的主要目的是帮助开发者编写和组织C语言的测试代码,确保程序的各个模块在开发过程中能够正确运行。在软件开发中,...

    使用unity做C语言自动测试.doc

    4. Makefile 只编译一个 group,最简单的 Makefile 如下所示: 五、 优点和应用 使用 Unity 进行自动测试的优点包括: * 轻量级:Unity 测试框架非常轻量级,易于使用和集成。 * 灵活:Unity 支持多种测试方式和...

    嵌入式软件单元测试

    CUnit是为C语言编写的轻量级单元测试框架,它为程序员提供了一种灵活多样且基本的测试功能,包括几种不同的用户界面以运行测试和报告结果。CUnit建立为一个静态库,链接到用户的测试代码中,并提供了一个简单的框架...

    Python在C单元测试中的应用.pdf

    而使用Cppunit等传统C语言单元测试框架,可能需要更复杂的设置和更长的测试周期,但其稳定性和与C语言的紧密集成是其明显优势。 总而言之,Python在C单元测试中的应用为开发者提供了一个更灵活、更易于上手的测试...

    c语言代码的编辑仓库,测试使用.zip

    在C语言中,可以编写专门的测试程序,或者利用自动化测试框架如Check来组织和执行测试。 5. **版本控制**:压缩包中的“C_add-master”可能是Git仓库的一个分支或者克隆,因为“master”通常是Git的默认主分支。Git...

    Linux 通用 WebAdmin (webui) 开发框架-C语言 源码

    WebAdmin是一个用C语言设计的易用的图形用户接口开发框架,C语言的高可移植性使得WebAdmin可以广泛应用于包括Linux、Unix、Windows及各种嵌入式操作系统中,编译WebAdmin系统除Libxml2库处不需要额外的C函数库支持...

    自制音乐播放器 C语言 源代码

    开发者需学习如何使用断点、日志记录、单元测试等方法来调试代码。 最后,考虑到音乐播放器可能需要跨平台运行,开发者还需要了解不同操作系统下的API差异,如Windows API、Linux系统调用或macOS的Cocoa框架。这...

    人工智能专家系统C语言

    使用单元测试、静态分析工具以及内存泄漏检测器来确保代码的正确性和效率。 通过理解以上知识点并应用到"人工智能专家系统C语言"项目中,我们可以构建一个能模拟专家决策、处理复杂问题的系统。这样的系统不仅对...

    C语言Web service例子

    C语言,尽管不如其他高级编程语言(如Python或Java)那样常见于构建Web服务,但仍然可以通过库和框架来实现。本主题将深入探讨如何使用C语言来创建Web服务,并通过提供的两个示例文件——`webserver.cpp`和`Web ...

    设计一个简单计算器的C语言课程设计报告

    设计一个简单的计算器程序,旨在模仿Windows操作系统中的计算器功能。此项目旨在帮助学生全面熟悉并掌握C语言的基本知识,特别是顺序、分支、循环三种基本控制结构的运用,以及如何处理数组、函数、指针和文件操作。...

    哈工大选修课—C语言在测试与控制中的应用数据采集与处理实验报告.pdf

    在程序设计方面,实验报告给出了一个简单的程序框架,使用了DOS和图形库来实现数据采集、中断服务、数据写入磁盘文件以及图形化显示等功能。程序首先设置了中断时间,并使用8254定时器来触发中断,然后在中断服务...

    C语言学生选修课管理系统.rar

    9. **测试与优化**:最后,对系统进行全面的单元测试、集成测试和性能测试,确保其功能完整性和运行效率。同时,根据测试结果进行代码优化,提高系统响应速度和资源利用率。 以上就是C语言学生选修课管理系统的关键...

    《C语言程序设计》说课--课件PPT.rar

    本“说课课件.pptx”将详细呈现上述各环节的具体内容,为教师提供一个全面、系统的教学框架,帮助提升C语言课程的教学质量和效果。同时,融入课堂思政元素,培养学生的社会责任感和创新精神,使他们成为既有专业技能...

    使用VS2010编写C语言程序

    3. 建立Win33控制台应用程序:控制台应用程序是最简单的项目类型之一,适用于不需要图形用户界面(GUI)的程序,如命令行工具或简单的脚本。 4. 选择下一步,然后选择空项目:这一步骤是在新建项目的向导中选择特定...

    XP方法在C语言设计周中的简单应用.pdf

    在C语言中,可以使用单元测试框架如Unity或Ceedling来实现TDD,确保代码的正确性。 6. **重构** 为了保持代码的简洁性和可读性,XP鼓励持续重构。在C语言项目中,重构可以帮助优化代码结构,提高性能,同时避免...

    C语言-数据结构课程设计报告-库存管理系统.doc

    报告中提到了函数模块和文件模块的测试,包括添加、查询和删除操作的单元测试,以及文件读写功能的测试,确保数据的完整性和一致性。 9. **软件使用说明书**:这部分详细解释了如何操作系统,包括每个功能的使用...

Global site tag (gtag.js) - Google Analytics