主要内容

利用基于matlab的仿真软件测试模型的测试金宝app

一个MATLAB®基于仿真软件金宝app®测试是定义在一个MATLAB代码(。mMATLAB中创建的)文件,然后打开,运行,测试经理和查看结果。测试文件是一个类继承自定义文件sltest.TestCase。继承允许您在测试经理打开测试文件。当您打开一个MATLAB测试文件测试经理,似乎和行为相同的测试创建的测试经理,虽然与一些有限的功能基于MATLAB的测试的局限性)。除了使用MATLAB测试在测试经理,您可以使用MATLAB在命令行测试像其他单元测试文件。

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

类和方法

TestCase类和方法

sltest.TestCase类和方法与MATLAB具体工作测试。您可以使用这些方法在测试文件和命令行,除了sltest.TestCase.forInteractiveUse,这只会在命令行中使用。除了这些方法,您可以使用matlab.unittest.TestCase用MATLAB测试方法。

sltest.TestCase

类的继承

loadSystem

负荷模型

模拟

模拟模型

assumeSignalsMatch

假设两组数据是等价的

assertSignalsMatch

维护两套数据是等价的

fatalAssertSignalsMatch

致命的维护两套数据是等价的

verifySignalsMatch

验证两组数据是等价的

sltest.TestCase.forInteractiveUse

为使用在命令行创建测试用例

createTemporaryFolder

创建临时文件夹,删除时超出范围的测试用例
createSimulationInput 创建金宝appSimulink.SimulationInputsltest.harness.SimulationInput对象。

测试工具类

sltest.harness.SimulationInput创建一个对象,您可以使用它来指定变化在模拟应用于测试工具。除了使用这个类为基于MATLAB的仿真软件测试,您可以使用它在其他MATLAB代码。金宝app

测试运行器方法

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

  • addModelCoverage使用测试运行器——允许模型覆盖集合。而不是使用这种方法,如果你打开你的基于matlab仿真软件测试中测试文件管理器,您可以启用覆盖集合。金宝app

  • add金宝appSimulinkTestResults将测试结果推到仿真软件测试经理。金宝app

插件类

这些sltest.plugins类为基于matlab的启用功能测试。除了这些方法,您可以使用sltest.plugins与这些测试类。插件可以被附加到一个matlab.unittest.TestRunner启用运行时功能sltest.TestCase测试。

sltest.plugins.MATLABTestCaseIntegrationPlugin

启用MATLAB集成测试模拟与测试经理和测试结果

sltest.plugins.ToTestManagerLog

使写作文本输出测试经理的结果记录信号测试经理的窗格

sltest.plugins.ModelCoveragePlugin

启用收集模型覆盖

创建一个基线MATLAB金宝app测试

创建一个基线MATLAB测试:

  1. 创建一个MATLAB代码(。m)文件,它定义了测试用例。您可以启动MATLAB从命令行编辑器,或测试经理使用>基于matlab的仿真软件金宝app测试(m)

    看到作者在MATLAB基于类的单元测试。唯一的区别为MATLAB测试类必须继承sltest.TestCase,而不是从matlab.unittest.TestCase

    这个示例MATLAB测试文件包括一个测试,定义的testOne函数。当您运行测试的测试经理、测试加载模型命名sltestMATLABBasedTestExample。然后设置的值gain2_var变量,模拟模型。最后,测试比较模型模拟输出垫基线数据文件。

    classdef myTest < slt。测试Case methods (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
    在= testCase.createSimulationInput (“sltestMATLABBasedTestExample”,…“WithHarness”、“sltestMATLABBasedTestExample_harness1”);在= in.setModelParameter (“StopTime”,“10”) simOut = testCase.simulate(的);

  3. 如果一个基线数据MAT-file不存在或如果你需要更新它,在MATLAB命令行,使用:

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

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

    当您生成基线时,测试开始运行。它停下来打开一个模拟数据检查报告,并在MATLAB命令行提示您复审基线数据。批准的数据时,它将基线数据保存到一个新的文件或更新现有的MAT-file垫。然后,测试继续运行,但是失败了,因为新的或更新的基线数据不包括在当前运行。重新运行测试使用runtests命令来使用新的或更新的基准和产生传递的效果。你也可以重新运行测试通过使用黄色重新运行超链接在命令行。

  4. 您可以选择,如果你有一个金宝app仿真软件覆盖™许可,可以覆盖集合包含在您测试使用sltest.plugins.ModelCoveragePlugin。看到收集使用基于matlab的仿真软件测试覆盖金宝app一个例子和覆盖率收集信息。

    或者,您可以使用测试经理收集覆盖率。当你打开测试文件测试经理,选择测试文件,选择一个覆盖范围设置选项,并选择覆盖率指标。文件中的测试套件和测试用例继承覆盖设置从测试文件。如果你设置覆盖集合和指标测试经理,您不需要导入或覆盖插件添加到跑步者

    如果你设置覆盖指标的测试经理,然后关闭测试经理,覆盖设置不保存到基于matlab的Simulink仿真测试代码(金宝app。m)文件。

  5. 您可以选择,如果你有一个要求工具箱™许可证,您可以添加需求。打开测试经理和更新测试文件。

    1. 点击开放>开放的基于matlab仿真软件测试(金宝appm)并选择测试文件。测试文件加载及其层次结构显示在测试测试浏览器窗格。如果您选择测试文件,需求测试文件内容窗格显示在测试经理。

    2. 添加通过扩大需求需求部分通过点击添加打开外部链接编辑器。看到链接到需求添加的信息需求。

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

  7. 在你编辑的代码文件并保存您的更改,或添加覆盖或需求之后,返回到测试经理和点击同步按钮接下来的测试文件测试浏览器窗格。

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

    1. 点击运行运行测试。

    2. 查看结果,扩大的行结果和工件窗格。

    3. 查看覆盖率结果结果和工件窗格中,选择结果项目和扩大聚合的报道部分。看到收集覆盖率测试获取信息。

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

或者,而不是增加覆盖率(步骤4)和运行测试在测试经理(步骤8),您可以使用这些命令在MATLAB命令行添加覆盖,运行测试,测试经理,推动的结果。然后,当你打开测试经理,显示测试结果。

套件= testsuite (“mytest”);跑步者= 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)——添加一个验证了链接整个测试文件

  • 文本在一个测试函数,添加一个验证了链接的功能

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

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

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

链接,您创建的MATLAB代码(。m)文件中出现需求部分的测试经理。链接到需求的测试经理工作描述的一样链接到需求

当你有需求编辑器打开并点击MATLAB测试传入链接,如果你有一个金宝app仿真软件测试许可证,打开测试经理和相关的测试。如果没有许可证,MATLAB编辑器打开,去行代码相关的要求。

参数化测试,需求的工具箱不支持链接到个人参金宝app数化版本的测试。在你的。m文件,如果你从参数化测试要求创建一个链接,链接相关联的所有版本的测试。在测试经理,如果你创建一个链接从一个版本的参数化测试要求,与所有版本的测试相关的链接。

的局限性MATLAB——基于测试

基于matlab的仿真软件金宝app测试不支持:金宝app

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

  • 并行运行测试。

  • 运行测试在多个版本。

  • 测试标签和描述。

  • 回调。(然而,尽管不支持回调的测试经理基于matlab的测试,您可以使用金宝appTestClassSetupTestMethodSetup,或在你的设备。m文件来实现类似的功能。看到编写Setup和Teardown代码使用类。)

  • 逻辑和时间评估。

  • 使覆盖集合或改变覆盖率度量测试套件测试经理或测试文件级别。

  • 节约覆盖设置测试基于MATLAB的仿真软件MATLAB代码(金宝app。m从测试经理)文件。

另请参阅

||||

相关的话题