我正在使用IAR EWARM工具链.我正在考虑使用cmocka,unity或cunit.我正在学习使用μC/ OS-III作为RTOS.
这是一个问题:单元测试如何与图中的RTOS一起使用? E.G:我应该禁用内核并将代码单元测试为单线程应用程序并存根所有/大多数内核调用,还是有更好的方法?
例:
在μC/ OS-III中,切入点仍然是主要的.从main调用任何init代码,然后调用Osstart()开始多任务处理.因此,当我运行测试工具时,我可能无法调用Osstart()
#ifdef UNIT_TESTtest_runner();#elseOsstart(&err);#endif
然后在我的所有应用程序代码中,我只需要模拟消息传递和延迟对内核的调用.
这是最好的方法吗?或者我是否更适合启动内核,为我的测试运行器创建任务,并将其中的所有任务作为单个线程运行,或者是否有一些其他好的方法涉及从测试工具中生成其他任务.
@H_403_25@解决方法 你似乎对单元测试有误解.您的代码是否使用RTOS是不相关的,因为单元测试涉及单独测试代码模块,即C函数.在测试期间,RTOS不会运行.单元测试还假设您正在测试一组定义代码功能的需求.
大多数单元测试的目标是能够提供各种形式的代码覆盖.这包括声明,决定和多条件决策覆盖.
语句覆盖率表明您已经运用了函数中的每一行代码.
决策覆盖范围涉及表明涵盖所有条件的双方(真/假).
多条件决策覆盖(MCDC)用于测试复杂的决策,即if(a&&(b || c))并确保涵盖所有变化. MCDC测试通常仅限于非常关键的应用,例如航空电子设备,其中故障可能带来灾难性后果.
子程序通常是存根的,即被拦截和控制,以证明每个子程序按顺序被调用,并且传递的参数是正确的,并且各种返回值正确地起作用.
我承认我对您提到的工具没有任何经验,但有许多商业单元测试工具,Cantata,LDRA TestBench,IBM Rational Test Real Time以及其他适用于深度单元测试的工具.
RTOS本身也有商业解决方案.我公司为μC/ OS-II和μC/ OS-III提供现成的单元和集成测试包.
斯科特验证软件
总结以上是内存溢出为你收集整理的单元测试使用RTOS的项目全部内容,希望文章能够帮你解决单元测试使用RTOS的项目所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)