过程与定制脚本测试结果
测试你的模型通常需要评估条件,确保测试是有效的,除了验证模型的行为。MATLAB®单元测试提供了一个框架的评估。在金宝app®测试™,您可以使用测试用例定义标准作者特定的评估,并包括MATLAB脚本单元测试资格。
自定义标准post-simulation标准应用于模拟输出。看到金宝appSimulink.SimulationOutput
。如果您需要运行时验证,使用验证()
声明测试评估或测试序列块。看到评估模型模拟使用验证语句。
MATLAB测试框架
一个定制的标准脚本的方法测试
,这是一个matlab.unittest
测试用例对象。要启用功能,测试用例自定义标准部分的测试经理,选择函数customCriteria(测试)。内部函数,输入自定义的标准脚本嵌入MATLAB编辑器。
嵌入式MATLAB编辑器的属性列表测试
。创建测试评估使用MATLAB单元测试资格。自定义标准支持验证和断言类型的条金宝app件。看到断言验证表,和其他资格。验证和断言操作时不同的自定义标准评估:
验证——其他评估评估验证失败。诊断出现在结果中。使用通用的评估验证,如检查模拟与预期输出。
例子:
test.verifyEqual (lastValue, 0)
断言——自定义标准脚本停止评估当断言失败。诊断出现在结果中。使用断言条件呈现无效的标准。
例子:
test.assertEqual (lastValue, 0)
。
定义一个自定义的标准脚本
这个例子展示了如何创建一个定制的标准脚本的自动驾驶仪测试用例。
打开测试文件。
sltest.testmanager.load sltest.testmanager.view (“AutopilotTestFile.mldatx”)
在测试浏览器中,选择AutopilotTestFile>基本设计测试用例>1.3测试要求。测试用例,扩大自定义标准部分。
启用自定义脚本通过选择标准
函数customCriteria(测试)
。在嵌入式MATLAB编辑器中,输入以下脚本。脚本得到的最终价值的信号
φ
和APEng
,确认最终的值相等0
。Signals_Req1_3
的测试要求和sltest_simout
是模拟输出。%获得最后一个值lastPhi = test.sltest_simout.get…(“Signals_Req1_3”. get ()“φ”).Values.Data(结束);lastAPEng = test.sltest_simout.get…(“Signals_Req1_3”. get ()“APEng”).Values.Data(结束);%验证过去的值等于0test.verifyEqual (lastPhi 0…(“最后的φ值:num2str (lastPhi),“。”]);test.verifyEqual (lastAPEng,假的,…(“最后APEng价值:”num2str (lastAPEng),“。”]);
运行测试用例。
在结果和工件窗格中,展开自定义标准结果。这两个标准。
重用定制标准和使用断点调试
除了创作标准脚本在嵌入式MATLAB编辑器中,您可以在一个独立的函数,作者定义标准和调用该函数的测试用例。使用一个独立的函数允许您
在多个测试用例重用定制标准。
设置断点的标准脚本调试。
探讨模拟输出使用命令行。
在本例中,您添加断点脚本自定义标准。你运行测试用例,测试对象的属性列表命令行,并调用自定义标准的测试用例。
从测试用例脚本调用自定义标准
导航到包含标准的文件夹功能。
cd (fullfile (docroot,“工具箱”,slt的,“例子”))
打开脚本定制标准
打开(“sltestCheckFinalRollRefValues.m”)
%这是一个定制的标准函数仿真软件测试的测试用例。金宝app%函数得到最后的φ值和APEng% AutopilotTestFile需求1.3测试用例测试文件。函数sltestCheckFinalRollRefValues(测试)%获得最后一个值lastPhi = test.sltest_simout.get…(“Signals_Req1_3”. get ()“φ”).Values.Data lastAPEng = test.sltest_simout.get(结束)…(“Signals_Req1_3”. get ()“APEng”).Values.Data(结束)%验证过去的值等于0test.verifyEqual (lastPhi 0…(“最后的φ值:num2str (lastPhi),“。”]);test.verifyEqual (lastAPEng,假的,…(“最后APEng价值:”num2str (lastAPEng),“。”]);
打开测试文件
sltest.testmanager.load sltest.testmanager.view (“AutopilotTestFile.mldatx”)
在嵌入式MATLAB编辑器自定义标准,输入自定义的函数调用标准:
sltestCheckFinalRollRefValues(测试)
设置断点和列表测试
属性
在第8行
sltestCheckFinalRollRefValues.m
,通过单击设置断点右边的行号。在测试管理器,运行测试用例。
命令窗口显示一个调试提示。
输入
测试
在命令提示符显示的属性STMCustomCriteria
对象。包含的属性特征和仿真数据测试用例的输出。测试= STMCustomCriteria属性:TestResult:(1×1 sltest.testmanager。TestCaseResult] sltest_simout:(1×1仿真金宝app软件。SimulationOutput] sltest_testCase:(1×1 sltest.testmanager。TestCase] sltest_bdroot: {“RollReference_Requirement1_3”} sltest_sut: {“RollAutopilotMdlRef /卷参考”}sltest_isharness: 1 sltest_iterationName:“
房地产
sltest_simout
包含仿真数据。查看数据PhiRef
,输入test.sltest_simout.get (“Signals_Req1_3”. get ()“PhiRef”)
ans = 金宝appSimulink.SimulationData。信号包:仿真软件。金宝appSimulationData属性:结构体字段:名称:PhiRef PropagatedName:”BlockPath:(1×1 Simulink.SimulationData。金宝appBlockPath] PortType:外港的PortIndex: 1值:[1×1 timeseries]
在MATLAB编辑器中,单击继续继续运行脚本自定义标准。
在结果和工件窗格中,展开自定义标准结果。这两个标准。
在另一个测试用例,重用脚本调用该函数从测试用例定义标准。
自定义标准程序化接口的例子
这个例子展示了如何设置和获取定制的标准使用编程接口。
在运行这个例子之前,暂时禁用警告称,由于验证失败。
警告从Stateflow:运行时:TestVerificationFailed;警告从Stateflow: cdr: VerifyDangerousComparison;
加载一个测试文件,测试用例对象
tf = sltest.testmanager.load (“AutopilotTestFile.mldatx”);ts = getTestSuiteByName (tf,的基本设计测试用例);tc = getTestCaseByName (ts,“需求1.3测试”);
创建自定义的标准对象和设置标准
创建自定义的标准对象。
tcCriteria = getCustomCriteria (tc)
启用tcCriteria = CustomCriteria属性::0调:“%返回值:CustomCriteria……”
创建自定义标准表达式。这个脚本的最后一个值的信号φ
和验证它等于0
。
标准=…sprintf ([' lastPhi = test.SimOut.get (“Signals_Req1_3”),…. get(φ).Values.Data(结束);\ n”,…的测试。verifyEqual (lastPhi 0[“决赛:“num2str (lastPhi),“。”);“])
标准= ' lastPhi = test.SimOut.get (Signals_Req1_3) . get(φ).Values.Data(结束);test.verifyEqual (lastPhi 0('Final: ',num2str(lastPhi),'.']);'
设置并启用标准。
tcCriteria。回调=标准;tcCriteria。启用= true;
运行测试用例并得到结果
运行测试用例。
tcResultSet =运行(tc);
得到测试用例的结果。
tcResult = getTestCaseResults (tcResultSet);
得到自定义标准的结果。
ccResult = getCustomCriteriaResult (tcResult)
ccResult = CustomCriteriaResult属性:结果:失败DiagnosticRecord: [1 x1 sltest.testmanager.DiagnosticRecord]
恢复警告验证失败。
警告在Stateflow:运行时:TestVerificationFailed;警告在Stateflow: cdr: VerifyDangerousComparison;
sltest.testmanager。clearResults sltest.testmanager。明确sltest.testmanager.close