主要内容

基于MATLAB的SIMULINK测试测试模型金宝app

一个matlab.®基于仿真软件金宝app®测试的定义在MATLAB代码(.m)在MATLAB中创建的文件,然后在测试管理器中打开,运行和查看结果。测试文件是继承的类定义文件sltest.testcase..继承允许您在测试管理器中打开测试文件。当您在测试管理器中打开MATLAB测试文件时,它会出现并表现与测试管理器中创建的测试相同,尽管功能有限(请参阅基于MATLAB的测试的局限性).除了在测试管理器中使用MATLAB测试之外,您还可以像使用其他单元测试文件一样在命令行中使用它。

因为这些测试文件是文本(.m)文件,您可以编辑,与其他方式进行比较和合并.m测试文件,并从文件链接到要求。相比之下,在测试管理器中创建的测试文件或使用金宝appSimulink Test™API保存为二进制MLDATX文件。

课程和方法

testcase类和方法

sltest.testcase.类及其方法专门使用MATLAB测试工作。您可以在测试文件和命令行中使用这些方法,但除外sltest.TestCase.forInteractiveUse,只能在命令行中使用。除了这些方法,您还可以使用matlab.unittest.testcase.MATLAB测试的方法。

sltest.testcase.

课程从中继承

loadSystem

加载模型

模拟

模拟模型

假设AignalSmatch.

假设两组数据是等同的

assertsignalsmatch.

断言两组数据是等同的

FatalassertsignalSmatch.

致命宣称两组数据是等同的

VerifySignalSmatch.

验证两组数据是等效的

sltest.TestCase.forInteractiveUse

在命令行中创建测试用例

createTemporaryfolder.

创建临时文件夹,当测试案例超出范围时删除
createSimulationInput 创造金宝appsimulink.simulationInpul.sltest.harness.simulationInpul.对象。

测试线束类

sltest.harness.simulationInpul.创建一个对象,您可以使用该对象指定在模拟期间应用于测试工具的更改。除了将这个类用于基于MATLAB的Simulink测试之外,您还可以在其他MATLAB代码中使用它金宝app。

测试跑步者方法

这些方法matlab.unittest.testrunner.专门应用于基于Matlab的Simulink测试。金宝app

插件类

这些sltest.plugins类启用基于matlab的测试的功能。除了这些方法之外,您还可以使用其他sltest.plugins这些测试的课程。插件可以附加到amatlab.unittest.testrunner.运行时启用功能sltest.testcase.测试。

sltest.plugins.matlabtestCaseIntegrationPlugin.

允许将MATLAB测试模拟和测试结果与测试管理器集成

sltest.plugins.totestManagerlog.

启用写文本输出以测试管理器结果记录信号测试经理的窗格

sltest.plugins.modelcoverageplugin

启用收集模型覆盖范围

创建基线马铃薯金宝app测试

要创建基线MATLAB测试:

  1. 创建MATLAB代码(.m)定义测试用例的文件。您可以通过使用命令行或使用测试管理器启动MATLAB编辑器新的>基于matlab的Simu金宝applink测试(.m)

    Matlab的基于课程的单位测试.MATLAB测试的唯一区别是类必须继承sltest.testcase.,而不是来自matlab.unittest.testcase.

    这个示例MATLAB测试文件包括一个测试,它在睾丸功能。在测试管理器中运行测试时,测试加载模型命名sltestmatlabbasedtestexample..的值gain2_var变量,并模拟模型。最后,测试将模型仿真输出与基线数据垫文件进行比较。

    classdef mytest 
                   
  2. 如果您使用的是测试线束,请更换sim在上面的MATLAB测试文件中的线路

    simout = testcase.simulate('sltestmatlabbasedtestexample',... withharness','sltestmatlabbasedtestexample_harness1');
    或者,要指定停止模拟时间,请更换sim
    在= testcase.createsimulationInput('sltestmatlabbasedtestexample',... withharness','sltestmatlabbasedtestexample_harness1');in.setModelParameter(“停止时间”,“10”)SIMOUT = testcase.simulate(in);

  3. 如果基线数据垫文件尚不存在,或者如果需要在MATLAB命令行上使用:

    runtests(<测试>,'generatebaselines',真的)

    对于示例文件,<测试>是 ''mytest / testone'

    当您生成基线时,测试开始运行。它会暂停以打开一个仿真数据检查器报告,然后在MATLAB命令行提示您检查基线数据。当您批准数据时,它将基线数据保存到一个新的mat -文件中,或更新现有的mat -文件。然后,测试继续运行,但会失败,因为新的或更新的基线数据没有包含在当前运行中。方法重新运行测试runtests命令用来使用新的或更新的基线并产生传递结果。您也可以使用黄色重新运行测试重新运真命令行处的超链接。

  4. 可选,如果你有一个金宝appSimulink Coverage™许可证,您可以在测试中包含Coverage集合。看使用基于matlab的Simulink测试收集覆盖率金宝app有关覆盖率收集的示例和信息。

  5. 可选,如果你有一个金宝appSimulink要求™许可证,您可以添加要求。打开测试管理器并更新测试文件。

    1. 点击打开>开放基于Matlab的Simulin金宝appk测试(.m)并选择测试文件。测试文件加载及其测试层次结构显示测试浏览器窗格。如果选择测试文件,则要求测试文件内容窗格出现在测试管理器中。

    2. 通过扩展来添加要求要求点击部分添加打开传出链接编辑器。看链接到要求有关添加要求的信息。

  6. 更新MATLAB代码(.m)从测试管理器中的测试文件,单击Matlab编辑器中的开放式测试关联。

  7. 编辑后.m文件并保存更改,或添加覆盖或要求后,返回测试管理器并单击“同步”按钮在测试文件旁边测试浏览器窗格。

  8. 运行测试,查看结果,并创建测试结果报告。

    1. 点击跑步运行测试。

    2. 要查看结果,请展开行中的行结果和文物窗格。

    3. 查看报道结果,在结果和文物窗格,选择结果项目并扩展聚合的报道部分。看收集测试中的覆盖范围有关信息。

    4. (可选)创建测试结果报告。看生成测试结果报告

或者,代替添加覆盖(步骤4)并在测试管理器中运行测试(步骤8),您可以在MATLAB命令行中使用这些命令来添加覆盖范围,运行测试,并将结果推向测试管理器。然后,当您打开测试管理器时,将显示测试结果。

套房= testsuite('mytests');runner = testrunner('textoutput');runner.addmodelcoverage(...“Collectmetrics”,[“MCDC”,“条件”);runner.add金宝appsimulinktestresults(“exporttofile”,...“testmgr_results.mldatx”);runner.run(套房);

与a的要求联系起来马铃薯-基于金宝app测试文件

笔记

你必须有金宝appSimulink要求包括需求链接。

要从MATLAB编辑器中编辑的文件中添加需求的链接,请参见要求可追溯的MATLAB代码行(金宝appSimulink要求).对于MATLAB测试文件,您可以使用相同进程添加链接。但是,您在MATLAB代码中选择的文本(.m)文件确定链接的类型以及添加它的测试。如果选择:

  • 类定义线(例如,classdef myclass ) -增加一个经核实链接整个测试文件

  • 测试功能内部的文本 - 添加一个经核实链接该功能

  • 跨多个测试函数的文本-添加经核实链接在选择中的第一个功能

  • 选择的任何其他文本 - 添加一个相关选择链接

添加需求链接后,您可以通过单击查看要求编辑器中的验证状态展示>验证状态.更新a的状态经核实要求,右键单击要求并选择运行测试.看审查要求验证状态(金宝appSimulink要求)

您在MATLAB代码中创建的链接(.m)文件出现在要求测试经理的部分。链接到测试管理器中的要求与所描述的相同链接到要求

如果您打开了要求编辑器,请单击用于Matlab测试的传入链接,如果您有金宝appSimulink测试许可证,测试管理器将打开并转到相关的测试。如果不可用许可证,则Matlab编辑器将打开并转到与该要求相关联的代码行。

对于参数化测试,金宝appSimulink要求不支持链接到测试的金宝app单个参数化版本。在你的.m文件,如果创建从参数化测试到要求的链接,则链接与该测试的所有版本相关联。在测试管理器中,如果从参数化测试的版本创建链接到要求,则链接与该测试的所有版本相关联。

限制马铃薯- 基于测试

基于MATLAB的SIMU金宝appLINK测试不支持:金宝app

  • 基线测试以外的测试类型。

  • 并行运行测试。

  • 在多个版本中运行测试。

  • 测试标记和描述。

  • 回调。(但是,当基于Matlab的测试的测试管理器中不支持回调时,您可以使金宝app用testclasssetup.testmethodetup.,或你的夹具.m文件以实现类似的功能。看使用类写入设置和拆除代码.)

  • 逻辑和时间评估。

也可以看看

||||

相关的话题