Ceedling + Eclipse或微控制器的单元测试

图片


编程微控制器? 阅读有关TDD的信息,还是只是厌倦了寻找错误并再次重写代码?

朋友,请尝试测试。

本文将展示如何将Ceedling集成到Eclipse / SW4STM32中,从而使代码在每次构建时都经过测试。

是什么促使我写文章的?
我找不到详细的说明,但由于内容肤浅或过时(例如,不再通过rake命令运行ceedling),因此无法遵循找到的说明。

开发人员将ceedle集成到eclipse中的说明非常微薄,唯一发现的说明已付清(这是最后一根稻草):
图片

安装方式


例如,操作系统Windows,CubeMX和SW4STM32。

安装Chocolatey
打开PowerShell.exe并执行:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) 

图片

安装MinGW
打开PowerShell.exe并执行:
 choco install mingw 


安装红宝石
打开PowerShell.exe并执行:
 choco install ruby 


安装宝石吊顶
重新启动 PowerShell!

打开PowerShell.exe并执行:
 gem install ceedling 


健康检查
打开PowerShell.exe并执行:

 cd / 

 ceedling new test_ceedling 

 cd test_ceedling 

 ceedling test:all 

图片

项目创建


使用CubeMX创建项目
在CubeMX中的工具链/ ide SW4STM32创建一个项目

代表管理员运行CubeMX以在C:/目录中创建一个项目

应用程序结构->高级(否则该项目不会立即收集)。

图片

我们将ceedling初始化为项目:

 cd / 

 ceedling new test_ceedling 

让我们在项目中创建以下结构和c./h。 文件,将路径添加到project.yml:

图片

添加源位置并包括
图片

图片

创建一个新的Builder:

图片

参数->测试:全部

图片

发射


创建另一个控制台窗口以进行测试:

图片

将其切换为显示Ceedling构建器的结果:

图片

按ctrl + B并在控制台中查看测试结果:

图片

添加外围设备


通常,函数的结果取决于外部组件。

除了测试生成工具Unity之外,Cededling还支持CMock(模拟对象和存根的生成器)。

想象一下我们的计算器在计算差异时,

 a - b 

如果按下按钮,则认为是不同的。

 b - a 

然后在这种情况下,我们的测试可能如下所示:

图片

按钮单击验证功能已声明但尚未实现(未编写)。

按ctrl + B并在控制台中查看测试结果:

图片

在这种情况下,我们创建了一个按钮的仿制品,该地方可能有UART,SPI,I2C等。

结论


现在,每个应用程序集都位于角落的右侧,您可以观察执行的测试结果:

图片

Source: https://habr.com/ru/post/zh-CN441268/


All Articles