项目简介
本项目集合了《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用户
- 从cpputest.org下载并构建CppUTest:
- 解压到
~/tools/cpputest
或类似路径。 - 进入该目录:
cd ~/tools/cpputest
。 - 执行配置脚本:
./configure.sh
。 - 运行检查:
make check
。 - 进行TDD构建:
make tdd
。
- 解压到
- 在
.bash_profile
或类似文件中定义CPPUTEST_HOME
环境变量:export CPPUTEST_HOME=~/tools/cpputest
。
- 构建所有示例:
- 进入代码目录:
cd <BookCodeParent>/code
。 - 执行构建命令:
make everything
。 - 若有问题,可一次只构建一个目录,如
code/t0
。
- 进入代码目录:
cygwin用户
若计划使用Eclipse,需将 c:\cygwin\bin
添加到Windows路径环境变量。
mingw用户
遇问题可在CppUTest谷歌群组求助。
Eclipse用户
- 选择
<BookCodeParent>
目录作为工作区。 - 将视角从Java切换到C/C++。
- 导入每个项目:选择
File/Import.../General/Existing Project into Workspace
。 - 处理
BookCode
项目时,只打开该项目,其他项目可在工作区但保持关闭,可编辑code/Makefile
调整保存时运行的Makefile。
Visual Studio用户
- 下载CppUTest并按当前说明为环境构建,运行测试后关闭Visual Studio。
- 打开书籍代码前,创建环境变量
CPPUTEST_HOME=<pathTo>/CppUTest
。 - 让Visual Studio转换工作区和项目文件,按需调整。
- 仅为
Debug
模式构建,不支持Release
模式。 - 每个工作区,打开
dsw
文件(让较新版本VS转换),使用Control-F5
保存、构建和运行测试。
忽略特殊代码
代码中含用于书籍自动化构建过程的注释标签(如 /* START: codeIncludeTag */
和 /* END: codeIncludeTag */
)及条件编译关闭的代码,可忽略。
若遇问题,可在书籍论坛 www.pragprog.com/titles/jgade
报告。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】