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');
为组件创建等效性测试
为 sltestNormalSILEquivalenceExample
模型的 Controller
组件创建等效性(背靠背)测试用例。
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 built: Model Action Rebuild Reason ============================================================================================ Controller Code generated and compiled. Code generation information file does not exist. 1 of 1 models built (0 models already up to date) Build duration: 0h 0m 35.787s
创建测试用例时设置框架选项
此示例显示如何为模型组件创建测试用例和测试框架。它还展示了如何使用 HarnessOptions
属性。该测试用例仅使用组件框架,无需设置任何输入或基线策略。要使用此测试用例创建策略,createTestForComponent
函数的 UseComponentInputs
属性必须为 false,并且 SLDVTestGeneration
属性必须为 off
。HarnessSource
属性被忽略,并且 FunctionInterfaceName
是从传递给 createTestForComponent
的参量推导出来的。
测试用例设置完成后,可以指定组件的验证策略,比如将组件的测试输入数据导入到创建的测试用例中。
此代码为 f14
模型的 Contoller
组件创建了一个测试文件和框架。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'});
输入参数
tf
— 要添加测试用例的测试文件或套件
sltest.testmanager.TestFile
对象 | sltest.testmanager.TestSuite
对象 | 字符串 | 字符向量
要添加测试用例的测试文件或测试套件,指定为 sltest.testmanager.TestFile
或 sltest.testmanager.TestSuite
对象、字符串或字符向量。如果 CreateTestFile
是 false
,则测试文件对象必须存在。如果 CreateTestFile
是 true
,则 TestFile
是新测试文件的路径,指定为字符串或字符向量。
示例: 'TestFile','myTestFile'
component
— 要创建测试用例和框架的组件
字符串 | 字符向量 | Simulink.BlockPath
对象 | 数组 | 元胞数组
要创建测试用例和框架的一个或多个组件。要指定单个组件,请使用 Simulink.BlockPath
对象或组件路径的字符串标量或字符向量。要指定多个组件,请使用 Simulink.BlockPath
对象数组、字符向量元胞数组或字符串数组,其中每个元素都是组件的路径。组件可以是顶层模型层次结构中的任何模块或模块。您可以多次指定一个组件来为该组件创建多个测试用例和框架。该输入参量可以是任何支持测试框架生成的模型或模块。请参阅测试框架与模型关系,了解可以构建测试框架的组件列表。
示例: 'Component','sf_car/shift_logic'
示例: 'Component',{'sldvdemo/Controller','sldvdemo/Pi Controller'};
topModel
— 层次结构顶部的模型名称
字符串 | 字符向量
层次结构顶层的模型名称,指定为字符串或字符向量。顶层模型是其层次结构包含 component
输入中指定的组件的模型的名称。如果您的 component
输入是一个包含多个组件的数组,则必须指定顶层模型。如果 component
输入是单个组件,则指定顶层模型是可选的。如果 component
输入是顶层模型,请不要指定 TopModel
。
示例: 'TopModel','Plant'
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: 'CreateTestFile',true
CreateTestFile
— 是否创建新的测试文件
false
(默认) | true
是否创建一个新的测试文件,指定为由 'CreateTestFile'
和 true
或 false
组成的逗号分隔的对。
示例: 'CreateTestFile',true
TestType
— 测试用例类型
'baseline'
(默认) | 'equivalence'
| 'simulation'
测试用例类型,指定为由 'TestType'
和 'baseline'
、'equivalence'
或 'simulation'
组成的逗号分隔的对。
示例: 'TestType','equivalence'
CreateHarness
— 是否创建测试框架
true
(默认) | false
是否为模型创建测试框架,指定为由 'CreateHarness'
和 true
或 false
组成的逗号分隔的对。当 component
不是顶层模型或者您创建多个测试用例和框架时,此选项会自动设置为 true
。当 component
是导出函数模型且 CreateHarness
是 true
时,该函数会在生成的测试框架中创建一个 Test Sequence 模块。
要仅生成测试框架,请将 SLDVTestGeneration 设置为 off
并将 UseComponentInputs 设置为 false
。可以选择指定任何所需的 HarnessOptions。
示例: 'CreateHarness',false
UseComponentInputs
— 选择仿真模型来获取输入
true
(默认) | false
用于仿真模型以获取所创建测试框架的组件输入的选项,指定为由 'UseComponentInputs'
和 true
或 false
组成的逗号分隔的对。如果此属性为 true
,则测试框架将使用来自模型仿真的输入。如果此属性为 false
,则测试框架不使用来自仿真的组件输入,并且不会创建输入信号文件或基线准则文件。
示例: 'UseComponentInputs',false
FunctionInterface
— 可重用库子系统的功能接口
字符串 | 字符向量
函数接口,指定为由 'FunctionInterface'
和字符串或字符向量组成的逗号分隔的对。指定 FunctionInterface
来为可重用库子系统创建测试。该子系统必须位于子系统库的顶层,并且必须具有函数接口。如果 component
是数组或元胞数组,则不支持此属性。
示例: 'FunctionInterface','single'
Simulation1Mode
— 等效性测试仿真 1 的仿真模式
'Normal'
| 'Accelerator'
等效性测试仿真 1 的仿真模式,指定为由 'Simulation1Mode'
和 'Normal'
或 'Accelerator'
组成的逗号分隔的对。如果您未指定仿真模式,则使用在测系统的模式。将自动为仿真模式创建所需的测试框架。
示例: 'Simulation1Mode','Normal'
Simulation2Mode
— 等效性测试仿真 2 的仿真模式
'Normal'
| 'Accelerator'
| 'Rapid Accelerator'
| 'Software-in-the-Loop (SIL)'
| 'Processor-in-the-Loop (PIL)'
等效性测试仿真 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)'
InputsLocation
— 用于在 MAT 文件中存储记录输入的文件或目录路径
字符串 | 字符向量
用于在 MAT 文件中存储记录输入的文件或目录路径,指定为由 'InputsLocation'
和字符向量或字符串组成的逗号分隔的对。包含文件扩展名 .mat
。如果 component
是数组或元胞数组,则 InputsLocation
必须是现有的目录路径。如果不指定 InputsLocation
,该函数会在当前目录中创建一个文件夹。
示例: 'InputsLocation','C:\MATLAB\inputs_data.mat'
BaselineLocation
— 用于在 MAT 文件中存储基线记录输出的文件或目录路径
字符串 | 字符向量
用于在 MAT 文件中存储基线记录输出数据的文件或目录路径,指定为由 'BaselineLocation'
和字符向量或字符串组成的逗号分隔的对。包含文件扩展名 .mat
。如果 component
是数组或元胞数组,则 BaselineLocation
必须是现有的目录路径。如果不指定 BaselineLocation
,该函数会在当前目录中创建一个文件夹。
示例: 'BaselineLocation','C:\MATLAB\baseline_data.mat'
CreateExcelFile
— 是否使用 Excel 格式进行输入和输出
false
(默认) | true
是否对输入使用 Excel® 格式(仅对于基线测试)以及输出使用,指定为由 'CreateExcelFile'
和 true
或 false
组成的逗号分隔的对。如果您使用 'ExcelFileLocation'
参量指定文件名和位置,则不需要同时使用 'CreateExcelFile'
。
示例: 'CreateExcelFile',true
ExcelFileLocation
— Excel 文件的文件或目录路径
字符串 | 字符向量
Excel 文件的文件路径,指定为由 'ExcelFileLocation'
和字符向量或字符串组成的逗号分隔的对。在文件名中包含文件扩展名 .xlsx
。如果 component
是数组或元胞数组,则 ExcelFileLocation
必须是现有的目录路径。如果您指定了位置,则不需要同时使用 'CreateExcelFile'
选项。如果您未指定 ExcelFileLocation
,该函数会在当前目录中创建一个文件夹。
注意
如果 SLDVTestGeneration
是 true
且 HarnessSource
是 'Signal Editor'
,则无法将数据保存到 Excel 文件。
示例: 'ExcelFileLocation','C:\MATLAB\baseline_data.xlsx'
Sheet
— 用于保存数据的 Excel 工作表的名称
字符串 | 字符向量
用于保存数据的 Excel 工作表的名称,指定为由 'Sheet'
和字符向量或字符串组成的逗号分隔的对。如果您正在创建单个测试用例和框架且未指定 Sheet
,则使用默认工作表。创建多个测试用例和框架时,如果不指定 Sheet
,则使用默认的 Excel 工作表名称。
示例: 'Sheet','MySubsysTest'
SLDVTestGeneration
— 是否使用 Simulink® Design Verifier™ 生成测试
'off'
(默认) | 'on'
| 'EnhancedMCDC'
是否使用 Simulink Design Verifier 生成测试,指定为:
'off'
或false
—不要使用 Simulink Design Verifier 来生成测试。'on'
或true
— 使用 Simulink Design Verifier 生成测试并使用模型配置中的 Simulink Design Verifier 选项。'EnhancedMCDC'
— 使用 Simulink Design Verifier 生成以模型覆盖率目标为增强型 MCDC 的测试。仅当TestType
为'equivalence'
且Simulation2Mode
为'Software-in-the-Loop (SIL)'
或'Processor-in-the-Loop (PIL)'
时,EnhancedMCDC
选项才有效。
注意
要从 Simulink Design Verifier 生成测试,在测系统必须是原子子系统。
示例: 'SLDVTestGeneration','on'
SimulateModelForSLDVTestGeneration
— 测试生成时是否仿真顶层模型
false
(默认) | true
是否在 Simulink Design Verifier 测试生成期间仿真顶层模型,指定为逻辑值。当返回的测试的模型覆盖率低于预期时,在分析可能的原因并重新配置默认仿真后,将此属性设置为 true
。然后,重新运行 Simulink Design Verifier 测试生成。如果覆盖率结果仍然低于预期,则可以迭代分析、仿真重新配置和测试生成。
示例: 'SimulateModelForSLDVTestGeneration','true'
HarnessSource
— 框架的输入源模块
'Inport'
(默认) | 'Signal Editor'
测试框架的输入源模块,指定为由 'HarnessSource'
和 'Inport'
或 'Signal Editor'
组成的逗号分隔的对。如果您没有生成任何测试输入数据(UseComponentInputs
是 false
),则不支持此属性。相反,将 HarnessOptions
单元格内的值指定为 {'Source','Test Sequence'}
。
示例: 'HarnessSource','Signal Editor'
HarnessOptions
— 测试框架创建选项
元胞数组
测试框架创建选项,指定为以逗号分隔的名称-值对的元胞数组。请参阅 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}
输出参量
tc
— 测试用例
sltest.testmanager.TestCase
对象 | 元胞数组
测试用例,以 sltest.testmanager.TestCase
对象或测试用例的元胞数组返回。如果在创建多个测试用例和框架时测试或框架创建失败,则元胞数组包含具有故障诊断的 MException
或 MSLException
对象。如果 component
是一个数组或元胞数组,并且一个测试或框架创建失败,则该函数会为其他组件创建测试用例和框架,即使一个组件。
status
— 测试用例创建状态
元胞数组
测试用例创建状态,以 true
和 false
值的数组形式返回。true
表示测试用例创建成功,false
表示创建失败。
版本历史记录
在 R2020b 中推出R2022a: 支持批量单元测试用例和框架创建
component
输入接受一个向量,以支持同时为多个组件设置单元测试用例和框架。新的 status
输出向量指示测试创建是否成功。
R2021a: SLDVTestGeneration
属性的新 'EnhancedMCDC'
值
现在,当第二次仿真是 SIL 或 PIL 时,您可以使用 SLDVTestGeneration,'EnhancedMCDC'
名称值参量来收集等效性检验的增强 MCDC 覆盖率。
当第二次仿真是 SIL 或 PIL 时,SLDVTestGeneration
接受 'EnhancedMCDC'
覆盖率收集进行等效性测试。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)