sltest.testmanager.createTestForComponent
为模型或模型组件创建测试用例和测试框架
语法
说明
[ 为测试文件或测试套件中的指定组件创建测试用例和测试框架 tc,status] = sltest.testmanager.createTestForComponent('TestFile',tf,'Component',component)tf。component 必须是单个组件,并且测试文件 tf 必须已经存在。如果测试文件不存在,您可以包含 CreateTestFile、true 名称-值参量来创建一个。返回的 status 表示测试用例 tc 是否创建成功。
[ 为每个组件创建一个测试用例或测试框架,并通过一个或多个 tc,status] = sltest.testmanager.createTestForComponent(___,Name,Value)Name,Value 对参量指定附加选项。在测试文件、组件和顶层模型输入参量后指定名称-值对参量。
示例
此示例展示如何为 vdp 模型创建基线测试用例并将输入保存在 Excel 文件中。自动创建测试框架。
请注意,此代码使用当前文件夹作为 ExcelFileLocation。要将 Excel 文件保存到其他位置,请将 ExcelFileLocation 值更改为其他可写文件夹。
vdp tf = sltest.testmanager.TestFile('MyBaselineTestFile'); sltest.testmanager.createTestForComponent('TestFile',tf,... 'Component','vdp',... 'TestType','baseline',... 'ExcelFileLocation','mybaseline_inputdata.xlsx');
为 Controller 模型的 sltestNormalSILEquivalenceExample 组件创建等效性(背靠背)测试用例。
load_system('sltestNormalSILEquivalenceExample'); tf = sltest.testmanager.TestFile('MyB2BTestFile'); sltest.testmanager.createTestForComponent("TestFile",tf,... "Component","sltestNormalSILEquivalenceExample/Controller",... "TestType","equivalence",... "Simulation1Mode","Normal",... "Simulation2Mode","Software-in-the-Loop (SIL)");
### Searching for referenced models in model 'Controller'. ### Total of 1 models to build. ### Starting build procedure for: Controller ### Successful completion of build procedure for: Controller ### Creating SIL block ... Building with 'gcc'. MEX completed successfully. Build Summary Top model targets: Model Build Reason Status Build Duration ============================================================================================================= Controller Information cache folder or artifacts were missing. Code generated and compiled. 0h 0m 22.173s 1 of 1 models built (0 models already up to date) Build duration: 0h 0m 36.154s
此示例显示如何为模型组件创建测试用例和测试框架。它还展示了如何使用 HarnessOptions 属性。该测试用例仅使用组件框架,无需设置任何输入或基线策略。要使用此测试用例创建策略,UseComponentInputs 函数的 createTestForComponent 属性必须为 false,并且 SLDVTestGeneration 属性必须为 off。HarnessSource 属性被忽略,并且 FunctionInterfaceName 是从传递给 createTestForComponent 的参量推导出来的。
测试用例设置完成后,可以指定组件的验证策略,比如将组件的测试输入数据导入到创建的测试用例中。
此代码为 Contoller 模型的 f14 组件创建了一个测试文件和框架。HarnessOptions 指定框架名称为 myHarness,使用信号编辑器作为框架源,并且当打开框架时,框架与模型同步。
f14 tcObj = sltest.testmanager.createTestForComponent(... 'CreateTestFile',true,'TestFile','MyHarnessTest', ... 'Component','f14/Controller','UseComponentInputs', ... false,'HarnessOptions',{'Name','myHarness', ... 'Source','Signal Editor','SynchronizationMode', ... 'SyncOnOpen'});
load_system("sltestCruiseControl"); [result,status] = sltest.testmanager.createTestForComponent(... "CreateTestFile",true,... "TestFile","myTests.mldatx",... "TopModel","sltestCruiseControl",... "Component",[... "sltestCruiseControl/TargetSpeedThrottle",... "sltestCruiseControlMode/disableCaseDetection",... "sltestCruiseControl/DriverSwRequest",... "sltestCruiseControl"],... "CreateExcelFile",true);
仅为模型的多个组件创建测试框架,而不是测试用例。
load_system('sltestCruiseControl'); [result, status] = sltest.testmanager.createTestForComponent(... 'CreateTestFile',true,... 'TestFile','myTests.mldatx',... 'TopModel','sltestCruiseControl',... 'Component',{... 'sltestCruiseControl/TargetSpeedThrottle',... 'sltestCruiseControlMode/disableCaseDetection',... 'sltestCruiseControl/DriverSwRequest',... 'sltestCruiseControl'},... 'UseComponentInputs',false,... 'HarnessOptions',{'SynchronizationMode','SyncOnOpen'});
输入参数
要添加测试用例的测试文件或测试套件,指定为 sltest.testmanager.TestFile 或 sltest.testmanager.TestSuite 对象、字符串或字符向量。如果 CreateTestFile 是 false,则测试文件对象必须存在。如果 CreateTestFile 是 true,则 TestFile 是新测试文件的路径,指定为字符串或字符向量。
示例: 'TestFile','myTestFile'
要创建测试用例和框架的一个或多个组件。要指定单个组件,请使用 Simulink.BlockPath 对象或组件路径的字符串标量或字符向量。要指定多个组件,请使用 Simulink.BlockPath 对象数组、字符向量元胞数组或字符串数组,其中每个元素都是组件的路径。组件可以是顶层模型层次结构中的任何模块或模块图。您可以多次指定一个组件来为该组件创建多个测试用例和框架。该输入参量可以是任何支持测试框架生成的模型或模块。请参阅测试框架与模型关系,了解可以构建测试框架的组件列表。
示例: 'Component','sf_car/shift_logic'
示例: 'Component',{'sldvdemo/Controller','sldvdemo/Pi Controller'};
层次结构顶层的模型名称,指定为字符串或字符向量。顶层模型是其层次结构包含 component 输入中指定的组件的模型的名称。如果您的 component 输入是一个包含多个组件的数组,则必须指定顶层模型。如果 component 输入是单个组件,则指定顶层模型是可选的。如果 component 输入是顶层模型,请不要指定 TopModel。
示例: 'TopModel','Plant'
名称-值参数
以 Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。
示例: 'CreateTestFile',true
是否创建一个新的测试文件,指定为由 'CreateTestFile' 和 true 或 false 组成的逗号分隔的对。
示例: 'CreateTestFile',true
测试用例类型,指定为由 'TestType' 和 'baseline'、'equivalence' 或 'simulation' 组成的逗号分隔的对。
示例: 'TestType','equivalence'
是否为模型创建测试框架,指定为由 'CreateHarness' 和 true 或 false 组成的逗号分隔的对。当 component 不是顶层模型或者您创建多个测试用例和框架时,此选项会自动设置为 true。当 component 是导出函数模型且 CreateHarness 是 true 时,该函数会在生成的测试框架中创建一个 Test Sequence 模块。
要仅生成测试框架,请将 SLDVTestGeneration 设置为 off 并将 UseComponentInputs 设置为 false。可以选择指定任何所需的 HarnessOptions。
示例: 'CreateHarness',false
用于仿真模型以获取所创建测试框架的组件输入的选项,指定为由 'UseComponentInputs' 和 true 或 false 组成的逗号分隔的对。如果此属性为 true,则测试框架将使用来自模型仿真的输入。如果此属性为 false,则测试框架不使用来自仿真的组件输入,并且不会创建输入信号文件或基线准则文件。
示例: 'UseComponentInputs',false
函数接口,指定为由 'FunctionInterface' 和字符串或字符向量组成的逗号分隔的对。指定 FunctionInterface 来为可重用库子系统创建测试。该子系统必须位于子系统库的顶层,并且必须具有函数接口。如果 component 是数组或元胞数组,则不支持此属性。
示例: 'FunctionInterface','single'
等效性测试仿真 1 的仿真模式,指定为由 'Simulation1Mode' 和 'Normal' 或 'Accelerator' 组成的逗号分隔的对。如果您未指定仿真模式,则使用在测系统的模式。将自动为仿真模式创建所需的测试框架。
示例: 'Simulation1Mode','Normal'
等效性测试仿真 2 的仿真模式,指定为由 'Simulation2Mode' 和 'Normal'、'Accelerator'、'Rapid Accelerator'、'Software-in-the-Loop (SIL)' 或 'Processor-in-the-Loop (PIL)' 组成的逗号分隔的对。如果您未指定仿真模式,则使用在测系统的模式。如果 TestType 是 'equivalence' 且 Simulation2Mode 是 'Software-in-the-Loop (SIL)',则除了测试用例和测试框架之外还会创建额外的测试框架,除非被测组件是原子子系统。当使用普通和 SIL 或 PIL 模式对原子子系统进行等效性测试时,将创建单个测试框架并用于这两种模式。
示例: 'Simulation2Mode','Software-in-the-Loop (SIL)'
用于在 MAT 文件中存储记录输入的文件或目录路径,指定为由 'InputsLocation' 和字符向量或字符串组成的逗号分隔的对。包含文件扩展名 .mat。如果 component 是数组或元胞数组,则 InputsLocation 必须是现有的目录路径。如果不指定 InputsLocation,该函数会在当前目录中创建一个文件夹。
示例: 'InputsLocation','C:\MATLAB\inputs_data.mat'
用于在 MAT 文件中存储基线记录输出数据的文件或目录路径,指定为由 'BaselineLocation' 和字符向量或字符串组成的逗号分隔的对。包含文件扩展名 .mat。如果 component 是数组或元胞数组,则 BaselineLocation 必须是现有的目录路径。如果不指定 BaselineLocation,该函数会在当前目录中创建一个文件夹。
示例: 'BaselineLocation','C:\MATLAB\baseline_data.mat'
是否对输入使用 Excel® 格式(仅对于基线测试)以及输出使用,指定为由 'CreateExcelFile' 和 true 或 false 组成的逗号分隔的对。如果您使用 'ExcelFileLocation' 参量指定文件名和位置,则不需要同时使用 'CreateExcelFile'。
示例: 'CreateExcelFile',true
Excel 文件的文件路径,指定为由 'ExcelFileLocation' 和字符向量或字符串组成的逗号分隔的对。在文件名中包含文件扩展名 .xlsx。如果 component 是数组或元胞数组,则 ExcelFileLocation 必须是现有的目录路径。如果您指定了位置,则不需要同时使用 'CreateExcelFile' 选项。如果您未指定 ExcelFileLocation,该函数会在当前目录中创建一个文件夹。
注意
如果 SLDVTestGeneration 是 true 且 HarnessSource 是 'Signal Editor',则无法将数据保存到 Excel 文件。
示例: 'ExcelFileLocation','C:\MATLAB\baseline_data.xlsx'
用于保存数据的 Excel 工作表的名称,指定为由 'Sheet' 和字符向量或字符串组成的逗号分隔的对。如果您正在创建单个测试用例和框架且未指定 Sheet,则使用默认工作表。创建多个测试用例和框架时,如果不指定 Sheet,则使用默认的 Excel 工作表名称。
示例: 'Sheet','MySubsysTest'
是否使用 Simulink Design Verifier 生成测试,指定为:
'off'或false- 不要使用 Simulink Design Verifier 来生成测试。'on'或true- 使用 Simulink Design Verifier 生成测试并使用模型配置中的 Simulink Design Verifier 选项。'EnhancedMCDC'- 使用 Simulink Design Verifier 生成以模型覆盖率目标为增强型 MCDC 的测试。仅当TestType为EnhancedMCDC且'equivalence'为Simulation2Mode或'Software-in-the-Loop (SIL)'时,'Processor-in-the-Loop (PIL)'选项才有效。
注意
要从 Simulink Design Verifier 生成测试,在测系统必须是原子子系统。
示例: 'SLDVTestGeneration','on'
是否在 Simulink Design Verifier 测试生成期间仿真顶层模型,指定为逻辑值。当返回的测试的模型覆盖率低于预期时,在分析可能的原因并重新配置默认仿真后,将此属性设置为 true。然后,重新运行 Simulink Design Verifier 测试生成。如果覆盖率结果仍然低于预期,则可以迭代分析、仿真重新配置和测试生成。
示例: 'SimulateModelForSLDVTestGeneration','true'
测试框架的输入源模块,指定为由 'HarnessSource' 和 'Inport' 或 'Signal Editor' 组成的逗号分隔的对。如果您没有生成任何测试输入数据(UseComponentInputs 是 false),则不支持此属性。相反,将 HarnessOptions 单元格内的值指定为 {'Source','Test Sequence'}。
示例: 'HarnessSource','Signal Editor'
测试框架创建选项,指定为以逗号分隔的名称-值对的元胞数组。请参阅 sltest.harness.create 了解有效选项。不要将 harnessOwner 句柄作为元胞数组中的第一个参量。第一个参量自动设置为 Component 值。
对于以下任一设置,请仅指定 HarnessOptions:
UseComponentInputs是falseSLDVTestGeneration是on或EnhancedMCDC)
如果您正在使用 Simulink Design Verifier 并且需要使用外部框架,请使用 HarnessOptions 仅将 SaveExternally 设置为 true。对于这种情况,您不能同时设置其他选项。
示例: 'UseComponentInputs',false,'HarnessOptions',{'SynchronizationMode','SyncOnOpen','Source','Test Sequence','SeparateAssessment',true}
示例: 'SLDVTestGeneration','on','HarnessOptions',{'SaveExternally',true}
输出参量
版本历史记录
在 R2020b 中推出component 输入接受一个向量,以支持同时为多个组件设置单元测试用例和框架。新的 status 输出向量指示测试创建是否成功。
现在,当第二次仿真是 SIL 或 PIL 时,您可以使用 SLDVTestGeneration,'EnhancedMCDC' 名称-值参量来收集等效性检验的增强 MCDC 覆盖率。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)