基于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,