sltest.testmanager.createTestForComponent
为模型或模型组件创建测试用例和测试框架
语法
说明
[
为测试文件或测试套件中的指定组件创建测试用例和测试框架 tc
,status
] = sltest.testmanager.createTestForComponent('TestFile',tf
,'Component',component
)tf
。component
必须是单个组件,并且测试文件 tf
必须已经存在。如果测试文件不存在,您可以包含 CreateTestFile
、true
Name-Value 参量来创建一个。返回的 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)");
### 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 20.286s 1 of 1 models built (0 models already up to date) Build duration: 0h 0m 33.161s
此示例显示如何为模型组件创建测试用例和测试框架。它还展示了如何使用 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
是false
SLDVTestGeneration
是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 覆盖率。
当第二次仿真是 SIL 或 PIL 时,SLDVTestGeneration
接受 'EnhancedMCDC'
覆盖率收集进行等效性测试。
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)