RT-Thread上使用utest+jenkins实现持续集成和自动化测试

看到一篇文章,后续工作可能会用到,转载并记录如下,原文链接:RT-Thread上使用utest+jenkins实现持续集成和自动化测试 - 掘金 (juejin.cn)

前情提要: 随着模块越来越多,测试维护成本越来越高,实现自动化便提上日程,网上关于嵌入式软件的持续集成和自动化测试的资料较少,utest是RTThread自带的测试框架,也没有接入jenkins,也没有测试报告,所以很多地方需要自己再做处理。本文记录了笔者搭建测试框架中详细的实现过程、踩过的坑和解决方法以及一些思考。

环境:RT-Thread、SCons、qemu、jenkins、utest

1. 使用jenkins实现持续集成

持续集成( Continuous integration ,简称 CI)指的是,频繁地将代码集成到主干。

持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前必须通过自动化测试。只要有一个测试用例失败,就不能集成。

先新建一个jenkins的任务,再一个个解决问题

新建任务

构建一个自由风格的软件项目(或者可以拷贝一个scm的项目)

general和源码管理可以根据实际情况配置

构建触发器可选择定时构建或者gitlab/gerrit来触发,或者多选也可以

上图示意为周一到周五22:00定时构建

接下来build step和构建后操作就是重头戏了

build step

选择执行shell脚本

脚本内容分为几步:

  1. 获取开发代码
  2. 获取测试代码,以及mock服务
  3. 编译运行
  4. 生成html格式的测试结果报告

构建后操作

  1. 发布HTML reports
  2. 发送邮件通知

2. 问题解决

问题一:怎样执行用例

我们平时都是在整个系统编译运行之后,进入msh命令行界面进行交互,输入“utest_list","utest_run"分别查看测试用例和运行测试用例

第一个办法的灵感来源于rtthread的源码,里面找到一个utest自动化机器人,是通过python函数将命令传入

最终采用的解决方法:在/board/vexpress/arm-a9/applications/main.c中加上

#include <msh.h>

#include <finsh.h> //main函数中加入:

msh_exec("utest_run",11);

问题二:怎样结束进程

utest执行完,结束qemu是用的ctrl+A,然后再输入X,这里怎么结束进程呢

是这个问题想了我一个下午,一直没有搜到怎样退出,后来想明白了,自己怎么能结束自己呢,必须得要从外部来实现,然后碰巧看到一篇帖子求助怎么退出qemu的,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值