Unit testing 如何使用Ceedling/Unity/Cmock测试嵌入式系统
我对使用ceedling测试嵌入式系统是新手。我想知道在学习如何使用ceedling方面是否有一个好的起点Unit testing 如何使用Ceedling/Unity/Cmock测试嵌入式系统,unit-testing,cmock,ceedling,Unit Testing,Cmock,Ceedling,我对使用ceedling测试嵌入式系统是新手。我想知道在学习如何使用ceedling方面是否有一个好的起点 我正在做的项目是一个CubeSat项目的嵌入式系统,我们需要一种测试代码的方法 有很多方法可以进入它。我更喜欢克隆ceedling(git clone)https://github.com/ThrowTheSwitch/Ceedling.git &&git子模块update--init--recursive),并运行一个示例来了解它是如何工作的 要使示例/温度传感器正常工作,您需要进行三次
我正在做的项目是一个CubeSat项目的嵌入式系统,我们需要一种测试代码的方法 有很多方法可以进入它。我更喜欢克隆ceedling(
git clone)https://github.com/ThrowTheSwitch/Ceedling.git &&git子模块update--init--recursive
),并运行一个示例来了解它是如何工作的
要使示例/温度传感器正常工作,您需要进行三次修改:
- project.yml-插件、加载路径应为
。/../plugins
- rakefile.rb-PROJECT_CEEDLING_ROOT应该是
“./…”
- lib/ceedling/rakefile.rb-添加一行引用
diy/test
examples/temp\u sensor
内运行rake test
来运行示例
您需要为temp_传感器示例安装ruby(用于rake)和gcc
一旦你确定了
example/temp\u sensor/rakefile.rb
和example/temp\u sensor/project.yml
文件的格式,关键的工作就在examples/temp\u sensor/test/test…
文件中。你首先应该了解的是,Ceedling或任何单元测试框架都是为了测试您的代码并扩展到最终项目。您通常使用某种基于标准的编译器在PC上测试代码,而不一定是嵌入式系统的交叉编译器。您可以在目标上运行ceedling生成的测试,但您可能不想这样做
关于这一主题的最好的书(不是完美的,但仍然很好)是James W.Grenning的嵌入式C测试驱动开发(实用程序员)
我个人有一个关于在老年人的指导下建立的要点。主要是关于在windows上获取Ruby和GCC的自我说明
在Linux下,Ceedling非常容易安装和运行
TEST_FILE("foo.c")
页面上还有许多其他优秀的资源。
希望有帮助。我从不需要直接从github中提取工具,但是如果你想给他们发送补丁,我想这是另一种方式,但是他们花了很多精力来减少设置和开始使用时的摩擦,我会先从ruby方法开始
旁注:现在模块生成器插件中有一些很酷的单元测试挂钩,可以自动生成测试存根,这在目标测试中可能非常有用 几年前,使用rake驱动ceedling已被弃用。使用gem简单多了,这是一个对ruby几乎一无所知的人写的。看看我的答案。
TEST_FILE("foo.c")