官方教程
点击跳转,不过估计还是要回来看我的😄
Ceedling介绍
?Ceedling提供了一个简单的接口,用于配置从基础到复杂的项目结构。 ?从而可以使用ceedling进行简单工程、有多个依赖库依赖项的工程、多个依赖工具工具的工程的测试代码构建。 ?Ceedling是基于unity的框架,是针对C语言的核心测试框架,专用于嵌入式的 ?Ceedling是对Ruby的Rake (make-ish)构建系统的扩展,Ceedling主要针对C语言中的测试驱动开发(Test-Driven Development),旨在整合CMock、unity和CException这三个很棒的开源项目。
?CMock为C函数创建模拟和存根。对于单元测试UT非常有用,在这种测试中,CMock不是试图将所有这些真正的单元一起编译,而是通过创建所有“其他”模块的假版本来使编译通过。我们就可以使用这些假版本来验证模块是否正常。 ?CMock使用Ruby脚本自动生成符合C头文件中指定接口的C源模块。它在头文件中搜索函数声明。
搭建环境
1.安装Ruby
在https://rubyinstaller.org/上下载安装Ruby并将其bin路径添加到系统环境变量PATH中,而后开启命令窗口使用
ruby -v
2.安装Ceeding
ceedling是在ruby gem镜像源中的一个软件,我们打开命令窗口输入一下指令来在ruby的安装路径中添加ceedling组件。
gem install ceedling
3.安装gcc
为了在window平台下运行gcc命令我们需要安装一个mingw64 http://www.mingw-w64.org/doku.php/download/mingw-builds 安装详细教程:知乎一篇文章, 可能会报错,需要关闭防火墙和杀毒程序,或尝试低版本 安装过程中,除了安装路径和处理器构架改为x64之外,其他参数保持默认即可。安装完毕后同样将MinGW64安装目录下的bin路径加入 PATH中。而后在CMD窗口中使用指令验证是否安装成功。
gcc -v
使用过程
刨参考工程
ceedling help
ceedling examples
ceedling example blinky
这里我参考了一个国外大佬的文章点击跳转
1.创建测试
ceedling支持使用命令创建项目树,但我们经常是在别的地方将项目已经创建好了,所以,现在创建src目录,将我们本来创建的工程文件放在其中,之后在src的同级目录使用powershell执行如下命令:
ceedling new test_ceedling
将会创建几个比较重要的目录和文件:
test:存放我们需要测试的C文件 src:ceedling预留的源文件存放目录,这里我们将源文件放在了我们创建的src文件夹中 project.yml:实际的项目文件,可以根据需要进行调整
可能如下两个目录并没有创建,需要我们手动添加 build:构建的测试程序存放目录,在执行测试之后自动生成 vendor:ceedling提供的库和源文件存放目录
2.修改项目配置文件project.yml
测试架构ceedling的核心文件是project.yml,它包含有项目源文件的路径,由于本次并没有使用默认路径,所以需要将project.yml中的paths稍作修改,替换成从我们的src中的源文件路径:
:paths:
:test:
- +:test/**
- -:test/support
:source:
- ../src/CORE
- ../src/HALLIB/STM32F7xx_HAL_Driver/Inc
- ../src/HALLIB/STM32F7xx_HAL_Driver/Src
- ../src/HARDWARE/KEY
- ../src/HARDWARE/LED
- ../src/SYSTEM/delay
- ../src/HARDWARE/sys
- ../src/HARDWARE/usart
- ../src/USER
:support:
- test/support
:libraries: []
删除不需要的src文件夹
3.编写测试文件
一个空的参考模板如下,在运行每个测试之前调用setUp,在运行每个测试之后调用tearDown
#include "unity.h"
void setUp(void)
{
}
void tearDown(void)
{
}
void test_first(void)
{
}
(1).添加被测试文件的头文件
#include "led.h"
(2).添加实例及返回值
|