> 技术文档 > 基于Ceedling的嵌入式软件单元测试

基于Ceedling的嵌入式软件单元测试


Ceedling

如果你使用 Ceedling(一个针对 C 代码单元测试的构建管理器),可以更方便地管理测试。Ceedling 会自动处理 Unity 和 CMock 的集成,无需手动编写 Makefile

1.环境搭建

1.1 Ruby环境

sudo apt-get install ruby

1.2 安装 Ceedling:

首先我们要知道 gem (类似于 python 的 pip 、Ubuntu 中的 apt-get 、Node.js 的 NPM 等等)是一个管理 Ruby 库和程序的标准包,通过 gem 可以十分便捷的安装、升级和卸载软件。
常见的 Ruby gem 指令:

gem -v gem版本
gem -h help
gem install -h install帮助
gem update 更新所有包
gem install PACKAGENAME -v PACKAGEVERSION 安装指定版本的软件包
gem environment 查看gem的环境

sudo gem install ceedling -v 0.31.1

1.3 安装gcovr 生成 HTML 报告

sudo apt install gcovr

2.初始化项目:

ceedling new MyProjectcd MyProject

2.1 编写测试代码:

将测试代码和源代码放入 test/src/ 目录中,Ceedling 会自动处理编译和测试。
src 目录中放入待测试代码的.c和.h文件
test 目录中编写测试代码,注意,代码文件名需要以test开头,如testXXX.c,内容如下

#include \"unity.h\"#include \"utils.h\"void setUp(void){  printf(\"setup...\\n\");}void tearDown(void){  printf(\"tearDown...\\n\");}void testAdd(void){  TEST_ASSERT_EQUAL(4, add(2, 2)); TEST_ASSERT_EQUAL(0, add(0, 0)); TEST_ASSERT_EQUAL(-2,