主要内容

使用基于matlab的Simulink测试模型金宝app

一个MATLAB®基于仿真软件金宝app®测试在MATLAB代码中定义(.m)文件,然后在Test Manager中打开、运行并查看结果。测试文件是继承自的类定义文件slt。TestCase.继承使您能够在test Manager中打开测试文件。当您在测试管理器中打开MATLAB测试文件时,它的显示和行为与在测试管理器中创建的测试相同,尽管具有一些有限的功能(请参阅基于MATLAB的测试的局限性).除了在test Manager中使用MATLAB测试外,您还可以像在任何其他单元测试文件一样在命令行中使用它。

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

类和方法

TestCase类和方法

slt。TestCase类及其方法特别适用于MATLAB测试。您可以在测试文件和命令行中使用这些方法,除了sltest.TestCase.forInteractiveUse,只能在命令行中使用。除了这些方法外,您还可以使用matlab.unittest.TestCase方法与MATLAB测试。

slt。TestCase

要从其继承的类

loadSystem

负荷模型

模拟

模拟模型

assumeSignalsMatch

假设两组数据是等价的

assertSignalsMatch

断言两组数据是等价的

fatalAssertSignalsMatch

致命断言两组数据是等价的

verifySignalsMatch

验证两组数据是否相等

sltest.TestCase.forInteractiveUse

创建用于命令行的测试用例

createTemporaryFolder

创建临时文件夹,当测试用例超出范围时删除该文件夹
createSimulationInput 创建金宝app仿真软件。SimulationInputsltest.harness.SimulationInput对象。

测试装备类

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

测试运行器方法

这些方法matlab.unittest.TestRunner特别适用于基于matlab的Simulink测试。金宝app

插件类

这些sltest.plugins类为基于matlab的测试提供功能。除了这些方法外,您还可以使用其他方法sltest.plugins带有这些测试的类。插件可以附加到matlab.unittest.TestRunner控件时启用功能slt。TestCase测试。

sltest.plugins.MATLABTestCaseIntegrationPlugin

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

sltest.plugins.ToTestManagerLog

允许向Test Manager结果写入文本输出记录信号测试管理器的窗格

sltest.plugins.ModelCoveragePlugin

启用收集模型覆盖率

创建基线MATLAB金宝app测试

创建一个基准MATLAB测试:

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

    看到在MATLAB中编写基于类的单元测试.MATLAB测试的唯一区别是类必须继承slt。TestCase,而不是frommatlab.unittest.TestCase

    此示例MATLAB测试文件包括一个测试,该测试定义在testOne函数。当您在test Manager中运行测试时,测试将加载命名的模型sltestMATLABBasedTestExample.的值gain2_var变量,并对模型进行仿真。最后,测试将模型仿真输出与基线数据MAT文件进行比较。

    classdef myTest < sltest。TestCasemethods (Test) function testOne(testCase) testCase.loadSystem... ('sltestMATLABBasedTestExample'); evalin('base','gain2_var = 2.01;'); simOut = testCase.simulate... ('sltestMATLABBasedTestExample'); testCase.verifySignalsMatch(simOut,'baselineOne.mat',... 'AbsTol',0.015); end end end
  2. 如果您正在使用测试线束,请更换simOut行在上面的MATLAB测试文件用

    simOut = testCase.simulate('sltestMATLABBasedTestExample',…“WithHarness”、“sltestMATLABBasedTestExample_harness1”);
    或者,指定停止仿真时间,替换simOut
    in = testCase.createSimulationInput('sltestMATLABBasedTestExample',…“WithHarness”、“sltestMATLABBasedTestExample_harness1”);in. setmodelparameter ("StopTime","10") simOut = testCase.simulate(in);

  3. 如果基线数据mat文件不存在,或者需要更新它,在MATLAB命令行中使用:

    runtests(<测试>,“GenerateBaselines”,真正的)

    对于示例文件,<测试>是““myTest / testOne”

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

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

  5. 如果你有要求工具箱™许可证,您可以添加需求。打开Test Manager并更新测试文件。

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

    2. 控件来添加需求需求部分。添加打开“传出链接编辑器”。看到链接到需求有关添加需求的信息。

  6. 更新MATLAB代码(.m)测试文件从测试管理器,单击在MATLAB编辑器中打开测试链接。

  7. 在编辑.m文件并保存您的更改,或者在添加覆盖率或需求之后,返回到Test Manager并单击同步按钮中的测试文件旁边的测试浏览器窗格。

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

    1. 点击运行运行测试。

    2. 控件中的行展开,可查看结果结果和工件窗格。

    3. 要查看覆盖结果,请使用结果和工件窗格中,选择结果项并展开聚合的报道部分。看到收集测试中的覆盖率获取信息。

    4. 可选地,创建一个测试结果报告。看到生成测试结果报告

或者,不是在test Manager中添加覆盖率(步骤4)和运行测试(步骤8),您可以在MATLAB命令行中使用这些命令来添加覆盖率,运行测试,并将结果推送到test Manager。然后,当您打开Test Manager时,将显示测试结果。

testsuite('myTests');Runner = testrunner('textoutput');runner.addModelCoverage(…“CollectMetrics”(“MCDC”、“条件”));runner.add金宝appSimulinkTestResults(“ExportToFile”,…“testmgr_results.mldatx”);runner.run(套);

链接到需求MATLAB金宝app测试文件

请注意

你一定有需求的工具箱包括需求链接。

若要在MATLAB编辑器中从正在编辑的文件中添加到需求的链接,请参见需求可追溯性的MATLAB代码(需求工具箱).对于MATLAB测试文件,使用相同的过程添加链接。然而,您在MATLAB代码中选择的文本(.m)文件决定链接的类型和它被添加到的测试。如果您选择:

  • 类定义行(例如,classdef myClass < sltest。TestCase) -添加一个验证了整个测试文件的链接

  • 测试函数中的文本-添加验证了这个函数的链接

  • 跨多个测试函数的文本-添加一个验证了链接用于选择的第一个函数

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

添加需求链接后,您可以通过单击在requirements Editor中查看验证状态显示>验证状态.更新节点的状态验证了需求,右键单击需求并选择运行测试.看到评审需求验证状态(需求工具箱)

在MATLAB代码中创建的链接(.m)文件出现在需求部分的测试管理器。在Test Manager中链接到需求的工作原理与中所描述的相同链接到需求

当您打开需求编辑器并单击用于MATLAB测试的传入链接时,如果您有金宝app仿真软件测试许可证,测试管理器打开并转到相关的测试。如果许可证不可用,MATLAB编辑器将打开并转到与该需求相关的代码行。

对于参数化检验,需求的工具箱不支持链接到测试的金宝app各个参数化版本。在你的.m文件中,如果您创建了从参数化测试到需求的链接,则该链接将与该测试的所有版本相关联。在Test Manager中,如果您创建了一个从参数化测试版本到需求的链接,那么这个链接将与该测试的所有版本相关联。

的局限性MATLAB基于-的测试

基于matlab的Simu金宝applink测试不支持:金宝app

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

  • 并行运行测试。

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

  • 测试标签和描述。

  • 回调。(然而,虽然测试管理器不支持基于matlab的测试的回调,但您可以使金宝app用TestClassSetup而且TestMethodSetup,或固定在你的.m文件实现类似的功能。看到使用类编写安装和拆卸代码.)

  • 逻辑和时间评估。

另请参阅

||||

相关的话题