IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 嵌入式--->ceeding(自动化测试工具),使用过程笔记 -> 正文阅读

[嵌入式]嵌入式--->ceeding(自动化测试工具),使用过程笔记


官方教程 点击跳转,不过估计还是要回来看我的😄

Ceedling介绍

?Ceedling提供了一个简单的接口,用于配置从基础到复杂的项目结构。
?从而可以使用ceedling进行简单工程、有多个依赖库依赖项的工程、多个依赖工具工具的工程的测试代码构建。
?Ceedling是基于unity的框架,是针对C语言的核心测试框架,专用于嵌入式的
?Ceedling是对RubyRake (make-ish)构建系统的扩展,Ceedling主要针对C语言中的测试驱动开发(Test-Driven Development),旨在整合CMockunityCException这三个很棒的开源项目。

CMock

?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  #cmd下执行
ceedling examples #查看官方给的示例
ceedling example blinky #选择其中一个示例刨下来

这里我参考了一个国外大佬的文章点击跳转

1.创建测试

ceedling支持使用命令创建项目树,但我们经常是在别的地方将项目已经创建好了,所以,现在创建src目录,将我们本来创建的工程文件放在其中,之后在src的同级目录使用powershell执行如下命令:

ceedling new test_ceedling	#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

/*******************************************************************************
 *    INCLUDED FILES
******************************************************************************/ 
//-- unity: unit test framework
#include "unity.h"
 
//-- module being tested
//   TODO
 
/*******************************************************************************
 *    DEFINITIONS
 ******************************************************************************/
 
/*******************************************************************************
 *    PRIVATE TYPES
******************************************************************************/
 
/*******************************************************************************
 *    PRIVATE DATA
******************************************************************************/
 
/*******************************************************************************
 *    PRIVATE FUNCTIONS
******************************************************************************/
 
/*******************************************************************************
 *    SETUP, TEARDOWN
******************************************************************************/
 
void setUp(void)
{
}
 
void tearDown(void)
{
}
 
/*******************************************************************************
 *    TESTS
******************************************************************************/
 
void test_first(void)
{
    //TODO
}

(1).添加被测试文件的头文件

 #include "led.h"

(2).添加实例及返回值


  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:37:47  更:2021-07-13 17:40:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 10:28:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计