人在仿真软件万博1manbetx

万博1manbetxSimulink &基于模型的设计

与Simulink项目和Simulink测试的持续集成万博1manbetx

几天前,我的同事马里亚诺发表了关于开发者专区的博客文章描述每次将更改推送到Git存储库分支时,如何在持续集成服务器上运行MATLAB测试套件。

正如您可能猜到的,当我看到这一点时,我必须在Simulink上下文中实现它。万博1manbetx让我们看看结果如何。

大局

以下是工作流程的总体图:

万博1manbetxSimulink项目Git Jenkins工作流

主要步骤有:

  • 我们有一个万博1manbetxSimulink项目将源代码管理集成配置为GitLab存储库
  • 在Simuli万博1manbetxnk项目中,我们使用万博1manbetx模拟试验
  • 每次我们提交和推送更改到Git存储库的特定分支时,远程存储库就会通知詹金斯服务器
  • 收到通知后,Jenkins服务器立即启动提交,启动MATLAB,打开Simulink项目并运行Simulink测试套件万博1manbetx
  • 如果测试通过,Jenkins服务器将在GitLab中创建一个合并请求。
  • 如果测试失败,则会保存Simulink测试万博1manbetx结果,并在GitLab中创建一个bug问题。

保存Simulink Test会话的最后一步非常重要。万博1manbetx正如您将在下面看到的,它允许我在不重新运行失败的测试的情况下在本地分析模拟结果,如果我正在测试的模拟需要很长时间来模拟,那么可以节省我很多时间。

现在是详细讨论的时候了。

一些背景知识

下面是在Jenkins和GitLab中,在MATLAB环境之外要完成的步骤的快速回顾。看见马里亚诺的文章更多细节:

  • 在Jenkins中,指定存储库URL、要构建的分支和我的凭证
  • 在Jenkins中,将Build Trigger设置为当一个更改被推到GitLab时进行构建
  • 在Jenkins中,指定build命令来启动MATLAB并运行我的测试
  • 在GitLab中,将推送事件Web钩子设置到Jenkins的GitLab CI服务URL。每次我将更改推送到测试分支时,都会触发此操作
  • 现在让我们进入有趣的部分:-)

    万博1manbetxSimulink项目

    对于这个示例,我们将重用在中之前使用的相同示例这篇文章其中,我们测试了模拟结果是否与使用软件在环模拟生成的可执行文件的结果相匹配:

    万博1manbetxSimulink与软件在循环验证

    邮报使用Simulink测试管理器进行基于仿真的测试万博1manbetx详细描述了如何设置测试,因此在此不再重复。

    我在这个博客中添加的内容是创建一个Simulink项目,将所有文件添加到其中,并配置万博1manbetx源代码控制集成。

    Simulink项目中的源代码控制集成万博1manbetx

    在Jenkins服务器上万博1manbetx运行Simulink测试套件

    在Jenkins中,我们需要指定一个build命令。此生成命令将在“节点显示”模式下启动MATLAB可执行文件并使用-r标志运行一些MATLAB代码(参见这张图片).在我的例子中,MATLAB代码是:

    詹金斯建造司令部

    这个函数runMyTests与马里亚诺的帖子中的内容相似。下面是它的外观:

    运行测试

    注意事项:

    • 这些测试是通过MATLAB测试框架. 因此,我的测试套件可以包括使用Simulink test和MATLAB测试框架创建的测试。正如他们所说,我来自哪里:万博1manbetx考试就是考试!
    • 功能writemeregerequest()书面起诉包含类似Mariano的帖子的代码,使用webwrite在GitLab中创建合并请求或问题使用其API
    • 我创建了一个文件夹来存储失败的结果
    • sltest.testmanager.exportResults用于保存失败时的测试结果。

    检查测试失败

    根据Jenkins服务器的配置方式,可以编写MATLAB代码将测试结果放置在任何方便的地方。默认情况下,我可以在Jenkins工作区中获取我的结果文件。

    获得结果

    一旦我得到结果文件,我可以在MATLAB中双击它,测试管理器就会显示出哪里出了问题。

    可视化的结果

    我再说一遍……由于我经常处理需要几个小时运行的模拟,从服务器获取结果文件节省了我很多时间,因为我不需要在我的机器上重新运行模拟。

    现在轮到你了

    您是否将变更管理和持续集成工具(如Git和Jenkins)纳入基于团队的基于模型的设计项目中?如果是,请在下面的评论中告诉我们有关您的设置的更多信息。

|

评论

如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。