一个matlab.®基于仿真软件金宝app®测试的定义在MATLAB代码(.m
)在MATLAB中创建的文件,然后在测试管理器中打开,运行和查看结果。测试文件是继承的类定义文件sltest.testcase.
.继承允许您在测试管理器中打开测试文件。当您在测试管理器中打开MATLAB测试文件时,它会出现并表现与测试管理器中创建的测试相同,尽管功能有限(请参阅基于MATLAB的测试的局限性).除了在测试管理器中使用MATLAB测试之外,您还可以像使用其他单元测试文件一样在命令行中使用它。
因为这些测试文件是文本(.m
)文件,您可以编辑,与其他方式进行比较和合并.m
测试文件,并从文件链接到要求。相比之下,在测试管理器中创建的测试文件或使用金宝appSimulink Test™API保存为二进制MLDATX文件。
这sltest.testcase.
类及其方法专门使用MATLAB测试工作。您可以在测试文件和命令行中使用这些方法,但除外sltest.TestCase.forInteractiveUse
,只能在命令行中使用。除了这些方法,您还可以使用matlab.unittest.testcase.
MATLAB测试的方法。
课程从中继承 |
|
加载模型 |
|
模拟模型 |
|
假设两组数据是等同的 |
|
断言两组数据是等同的 |
|
致命宣称两组数据是等同的 |
|
验证两组数据是等效的 |
|
在命令行中创建测试用例 |
|
创建临时文件夹,当测试案例超出范围时删除 | |
createSimulationInput |
创造金宝appsimulink.simulationInpul. 或sltest.harness.simulationInpul. 对象。 |
sltest.harness.simulationInpul.
创建一个对象,您可以使用该对象指定在模拟期间应用于测试工具的更改。除了将这个类用于基于MATLAB的Simulink测试之外,您还可以在其他MATLAB代码中使用它金宝app。
这些方法matlab.unittest.testrunner.
专门应用于基于Matlab的Simulink测试。金宝app
matlab.unittest.testrunner.addmodelcoverage.
- 使用测试跑步者启用模型覆盖集合。
matlab.unittest.testrunner.add金宝appsimulinktestresults -
将测试结果推向Simulink测试管理器。金宝app
这些sltest.plugins
类启用基于matlab的测试的功能。除了这些方法之外,您还可以使用其他sltest.plugins
这些测试的课程。插件可以附加到amatlab.unittest.testrunner.
运行时启用功能sltest.testcase.
测试。
允许将MATLAB测试模拟和测试结果与测试管理器集成 |
|
启用写文本输出以测试管理器结果记录信号测试经理的窗格 |
|
启用收集模型覆盖范围 |
要创建基线MATLAB测试:
创建MATLAB代码(.m
)定义测试用例的文件。您可以通过使用命令行或使用测试管理器启动MATLAB编辑器新的>基于matlab的Simu金宝applink测试(.m).
看Matlab的基于课程的单位测试.MATLAB测试的唯一区别是类必须继承sltest.testcase.
,而不是来自matlab.unittest.testcase.
.
这个示例MATLAB测试文件包括一个测试,它在睾丸
功能。在测试管理器中运行测试时,测试加载模型命名sltestmatlabbasedtestexample.
.的值gain2_var
变量,并模拟模型。最后,测试将模型仿真输出与基线数据垫文件进行比较。
classdef mytest
如果您使用的是测试线束,请更换sim
在上面的MATLAB测试文件中的线路
simout = testcase.simulate('sltestmatlabbasedtestexample',... withharness','sltestmatlabbasedtestexample_harness1');
sim
和在= testcase.createsimulationInput('sltestmatlabbasedtestexample',... withharness','sltestmatlabbasedtestexample_harness1');in.setModelParameter(“停止时间”,“10”)SIMOUT = testcase.simulate(in);
如果基线数据垫文件尚不存在,或者如果需要在MATLAB命令行上使用:
runtests(<测试>,'generatebaselines',真的)
对于示例文件,<测试>
是 ''mytest / testone'
.
当您生成基线时,测试开始运行。它会暂停以打开一个仿真数据检查器报告,然后在MATLAB命令行提示您检查基线数据。当您批准数据时,它将基线数据保存到一个新的mat -文件中,或更新现有的mat -文件。然后,测试继续运行,但会失败,因为新的或更新的基线数据没有包含在当前运行中。方法重新运行测试runtests
命令用来使用新的或更新的基线并产生传递结果。您也可以使用黄色重新运行测试重新运真
命令行处的超链接。
可选,如果你有一个金宝appSimulink Coverage™许可证,您可以在测试中包含Coverage集合。看使用基于matlab的Simulink测试收集覆盖率金宝app有关覆盖率收集的示例和信息。
可选,如果你有一个金宝appSimulink要求™许可证,您可以添加要求。打开测试管理器并更新测试文件。
点击打开>开放基于Matlab的Simulin金宝appk测试(.m)并选择测试文件。测试文件加载及其测试层次结构显示测试浏览器窗格。如果选择测试文件,则要求和测试文件内容窗格出现在测试管理器中。
通过扩展来添加要求要求点击部分添加打开传出链接编辑器。看链接到要求有关添加要求的信息。
更新MATLAB代码(.m
)从测试管理器中的测试文件,单击Matlab编辑器中的开放式测试关联。
编辑后.m
文件并保存更改,或添加覆盖或要求后,返回测试管理器并单击“同步”按钮在测试文件旁边测试浏览器窗格。
运行测试,查看结果,并创建测试结果报告。
点击跑步运行测试。
要查看结果,请展开行中的行结果和文物窗格。
查看报道结果,在结果和文物窗格,选择结果项目并扩展聚合的报道部分。看收集测试中的覆盖范围有关信息。
(可选)创建测试结果报告。看生成测试结果报告.
或者,代替添加覆盖(步骤4)并在测试管理器中运行测试(步骤8),您可以在MATLAB命令行中使用这些命令来添加覆盖范围,运行测试,并将结果推向测试管理器。然后,当您打开测试管理器时,将显示测试结果。
套房= testsuite('mytests');runner = testrunner('textoutput');runner.addmodelcoverage(...“Collectmetrics”,[“MCDC”,“条件”);runner.add金宝appsimulinktestresults(“exporttofile”,...“testmgr_results.mldatx”);runner.run(套房);
笔记
你必须有金宝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
文件以实现类似的功能。看使用类写入设置和拆除代码.)
逻辑和时间评估。
matlab.unittest.testcase.
|matlab.unittest.testrunner.
|matlab.unittest.testrunner.addmodelcoverage.
|matlab.unittest.testrunner.add金宝appsimulinktestresults.
|sltest.testcase.