littlebot
Published on 2025-04-16 / 0 Visits
0

【源码】基于C语言的嵌入式单元测试示例项目

项目简介

本项目集合了《Test Driven Development for Embedded C》一书中的代码示例,为嵌入式C语言提供使用单元测试框架(如CppUTest和Unity)的示例代码,用于编写和执行单元测试,保证代码的正确性与稳定性。项目还包含针对不同编译器和开发环境(如gcc、Visual Studio、Eclipse等)的构建说明。

项目的主要特性和功能

  • 多测试框架支持:支持CppUTest和Unity两种单元测试框架,可按需选用。
  • 多环境适配:提供针对gcc、cygwin、mingw、Eclipse和Visual Studio等不同开发环境的构建说明和项目文件。
  • 代码分离设计:利用特殊注释标签将代码与书籍文本分离,避免冲突,同时保持示例代码可编译。
  • 测试用例示例:包含多个测试用例示例,展示嵌入式C语言中单元测试的编写与执行方法。

安装使用步骤

前提条件

构建项目代码前,需从cpputest.org获取CppUTest,构建并运行其测试。若构建时遇问题,可在CppUTest谷歌群组求助。

解压代码

将代码包解压到 <BookCodeParent> 目录,确保路径无空格,最终目录结构为 <BookCodeParent>/code

针对不同环境的构建步骤

gcc用户

  1. 从cpputest.org下载并构建CppUTest:
    • 解压到 ~/tools/cpputest 或类似路径。
    • 进入该目录:cd ~/tools/cpputest
    • 执行配置脚本:./configure.sh
    • 运行检查:make check
    • 进行TDD构建:make tdd
  2. .bash_profile 或类似文件中定义 CPPUTEST_HOME 环境变量:
    • export CPPUTEST_HOME=~/tools/cpputest
  3. 构建所有示例:
    • 进入代码目录:cd <BookCodeParent>/code
    • 执行构建命令:make everything
    • 若有问题,可一次只构建一个目录,如 code/t0

cygwin用户

若计划使用Eclipse,需将 c:\cygwin\bin 添加到Windows路径环境变量。

mingw用户

遇问题可在CppUTest谷歌群组求助。

Eclipse用户

  1. 选择 <BookCodeParent> 目录作为工作区。
  2. 将视角从Java切换到C/C++。
  3. 导入每个项目:选择 File/Import.../General/Existing Project into Workspace
  4. 处理 BookCode 项目时,只打开该项目,其他项目可在工作区但保持关闭,可编辑 code/Makefile 调整保存时运行的Makefile。

Visual Studio用户

  1. 下载CppUTest并按当前说明为环境构建,运行测试后关闭Visual Studio。
  2. 打开书籍代码前,创建环境变量 CPPUTEST_HOME=<pathTo>/CppUTest
  3. 让Visual Studio转换工作区和项目文件,按需调整。
  4. 仅为 Debug 模式构建,不支持 Release 模式。
  5. 每个工作区,打开 dsw 文件(让较新版本VS转换),使用 Control-F5 保存、构建和运行测试。

忽略特殊代码

代码中含用于书籍自动化构建过程的注释标签(如 /* START: codeIncludeTag *//* END: codeIncludeTag */)及条件编译关闭的代码,可忽略。

若遇问题,可在书籍论坛 www.pragprog.com/titles/jgade 报告。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】