sltest.harness.create
创建测试框架
语法
说明
sltest.harness.create(
使用默认属性为模型组件或组件 harnessOwner
)harnessOwner
创建一个或多个测试框架。模型的活动和非活动配置集被复制到创建的框架中。
sltest.harness.create(
使用由一个或多个 harnessOwner
,Name,Value
)Name
、Value
对参量指定的附加选项。如果创建多个框架,则所有框架都会使用指定的属性值。您可以在创建单个框架之后更改其属性。
返回有关所创建的框架的信息。result
= sltest.harness.create(harnessOwner
,___)
示例
为子系统创建框架
为 f14
模型的 Controller
子系统创建一个框架。
openExample('f14'); sltest.harness.create('f14/Controller');
为模型创建框架
为 f14
模型创建一个框架。该框架称为 sample_harness
,具有 Signal Editor 模块信源和 Scope 模块信宿。
openExample('f14'); sltest.harness.create('f14','Name','sample_harness','Source',... 'Signal Editor','Sink','Scope')
创建使用图调度程序的框架
创建一个框架,使用 Stateflow® 图作为 f14
模型的 Controller
子系统的测试框架调度程序。
openExample('f14'); sltest.harness.create('f14/Controller',SchedulerBlock = 'Chart');
创建多个框架
为 Controller
子系统创建一个框架,为 f14
模型的 Aircraft Dynamics Model
子系统创建一个框架。Controller
子系统的框架名称为 myf14Harness
,而 Aircraft Dynamics Model
子系统的框架名称为 myf14Harness1
。
openExample('f14') result = sltest.harness.create(["f14/Controller",... "f14/Aircraft Dynamics Model"],... TopModel="f14",Name="myf14Harness");
输入参数
harnessOwner
— 模型或组件
字符串 | 字符向量 | Simlink.BlockPath
对象 | 双精度值 | 数组
模型或组件句柄或路径,指定为完整模块路径的字符串或字符向量或数字组件句柄对象的双精度值。为多个零部件创建框架时,请使用以下格式之一指定框架所有者:
组件模块路径的字符元胞数组或字符串数组
组件模块句柄的双精度值组
组件模块路径的
Simulink.BlockPath
对象数组
示例: 1.9500e+03
示例: '型号名称'
示例: ‘模型名称/子系统’
示例: ["模型名称/子系统 1","模型名称/子系统 2"]
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量后,但参量对组的顺序无关紧要。
示例: sltest.harness.create(Name="controller_harness",Source="Signal Editor",Sink="To File")
创建一个名为 controller_harness
的框架,其中包含一个 Signal Editor 模块信源和一个 To File 模块信宿,用于测试组件。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: sltest.harness.create('Name','controller_harness','Source','Signal Editor','Sink','To File')
创建一个名为 controller_harness
的框架,其中包含一个 Signal Editor 模块信源和一个 To File 模块信宿,用于测试组件。
TopModel
— harnessOwners
中组件的顶级模型
字符向量 | 字符串 | 双精度值
harnessOwners
中组件的顶层模型,指定为顶层模型的数字句柄或模型名称的字符串或字符向量。如果创建多个测试框架,则此名称-值参量是必需的;如果仅创建一个框架,则该参数将被忽略。
Name
— 框架名称
字符向量 | 字符串
框架名称,指定为字符向量或字符串。如果您创建多个框架,该函数将使用 Name
参量作为所创建框架的前缀。例如,如果指定名称为 myHarness
,则创建的框架为 myHarness
、myHarness1
等等。
Description
— 框架描述
字符向量 | 字符串
框架描述,指定为字符向量或字符串。
示例: 'Description','A test harness'
Source
— 被测部件输入
'Inport'
(默认) | 'Signal Editor'
| 'From Workspace'
| 'From File'
| 'Test Sequence'
| 'Chart'
| 'None'
| 'Custom'
框架中被测组件的输入,指定为 Inport
、Signal Editor
、From Workspace
、From File
、Test Sequence
、Chart
、None
或 Custom
。
示例: 'Source','Signal Editor'
CustomSourcePath
— 自定义源的库模块路径
字符向量 | 字符串
对于设置为 Custom
的 Source
,用作源的库模块的路径。
示例: 'CustomSourcePath','simulink/Sources/Sine Wave'
Sink
— 框架输出
'Outport'
(默认) | 'Scope'
| 'To Workspace'
| 'To File'
| 'Terminator'
| 'None'
| 'Custom'
框架中被测组件的输出,指定为 Outport
、Scope
、To Workspace
、To File
、Terminator
、None
或 Custom
。
如果您的测试框架包含 To Workspace 模块,则测试运行完成后,该模块变量不会保存在基础工作区中。测试完成后,基础工作区恢复到原始状态。
示例: 'Sink','Scope'
CustomSinkPath
— 自定义信宿的库模块路径
字符向量 | 字符串
对于自定义信宿,用作信宿的库模块的路径,指定为由 'CustomSinkPath'
和路径组成的逗号分隔的对。
示例: 'CustomSinkPath','simulink/Sinks/Display'
SeparateAssessment
— 单独的 Test Assessment 模块
false
或 0
(默认) | true
或 1
选择向测试框架添加单独的 Test Assessment 模块,指定为数字或逻辑 1
(true
)或 0
(false
)。
示例: 'SeparateAssessment',true
SynchronizationMode
— 指定被测组件的同步行为
'SyncOnOpenAndClose'
(默认) | 'SyncOnOpen'
| 'SyncOnPushRebuildOnly'
用于指定被测组件何时同步主模型和测试框架的选项。子系统模型测试框架始终与其底层模型同步。
'SyncOnOpenAndClose'
在测试框架打开时从主模型重建被测组件,并在测试框架关闭时将更改从被测组件推送到主模型。当测试框架打开时,
'SyncOnOpen'
从主模型重建被测组件。当测试框架关闭时,它不会将被测试组件的更改推送到主模型。仅当您手动启动重建或推送整个测试框架时,
'SyncOnPushRebuildOnly'
才会重建并推送更改。
有关详细信息,请参阅 同步测试框架和模型之间的更改
示例: 'SynchronizationMode','SyncOnOpen'
CreateWithoutCompile
— 无需编译主模型即可创建框架
false
或 0
(默认) | true
或 1
指定不编译主模型的框架创建选项,指定为数字或逻辑 1
(true
) 或 0
(false
)。对于子系统模型测试框架,此选项设置为 true
。
false
编译模型并运行其他操作以支持框架构建。true
无需模型编译即可创建框架。
示例: 'CreateWithoutCompile',false
VerificationMode
— 选择使用普通(模型)、软件在环(SIL) 或处理器在环(PIL)模块作为被测组件
'Normal'
(默认) | 'SIL'
| 'PIL'
用于指定在测试框架中使用的模块类型的模块,指定为 Normal
、SIL
或 PIL
。SIL 和 PIL 模块需要 Simulink® Coder™。对于子系统模型,此选项设置为 Normal
。
示例: 'VerificationMode','SIL'
ExistingBuildFolder
— 使用 SIL/PIL 验证的现有生成代码文件夹的路径
字符串 | 字符向量
使用软件在环 (SIL) 或处理器在环 (/PIL) 验证的现有生成代码的主构建文件夹的路径,指定为字符串或字符向量。如果您指定构建文件夹,该函数将使用该文件夹中的现有代码,从而缩短框架创建时间。如果您未指定构建文件夹,该函数将重新生成代码。如果您创建多个框架,则 ExistingBuildFolder
不适用。您无法在 sl_customization
文件中或通过使用 sltest.harness.setHarnessCreateDefaults
设置此属性的默认值。
示例: 'ExistingBuildFolder','C:\TestMdl\SILHarness\Amplifier_ert_rtw'
RebuildOnOpen
— 设置框架打开时执行的框架重建命令
false
或 0
(默认) | true
或 1
打开时重建框架的选项,指定为数字或逻辑 1
(true
) 或 0
(false
)。
示例: 'RebuildOnOpen',true
RebuildModelData
— 设置在测试框架重建期间要更新的配置集和模型工作区条目
false
或 0
(默认) | true
或 1
在测试框架重建期间更新配置集和模型工作区条目的选项,指定为数字或逻辑 1
(true
) 或 0
(false
)。对于子系统模型测试框架,此选项设置为 true
。
示例: 'RebuildModelData',true
SaveExternally
— 测试框架保存为单独的 SLX 文件
false
或 0
(默认) | true
或 1
选择将每个测试框架保存为单独的 SLX 文件,指定为数字或逻辑 1
(true
) 或 0
(false
)。一个模型不能同时使用外部和内部测试框架存储。如果模型已经有测试框架,则新的测试框架将遵循现有框架的存储类型,而此选项不会覆盖现有框架的存储类型。参见 管理测试框架。
示例: 'SaveExternally',true
HarnessPath
— 外部测试框架文件或框架文件夹的路径
字符向量 | 字符串
外部测试框架 SLX 文件的路径,或者,如果您创建多个框架,则为外部框架文件文件夹的路径,指定为字符向量或字符串。仅当您将 SaveExternally
指定为 true
时,框架路径才适用。
示例: 'HarnessPath','C:\MATLAB\SafetyTests'
LogOutputs
— 记录所有框架输出信号
false
或 0
(默认) | true
或 1
记录被测组件的所有框架输出信号,指定为数字或逻辑 1
(true
) 或 0
(false
)。当值为 true
时,将记录所有信号,除了与日志记录不兼容的信号。在测试用例执行期间记录信号并返回测试结果。如果输出信号没有名称或传播名称,则使用 <component under test name>:<output port number>
格式框架中为其分配一个名称。要删除记录的信号,您可以手动删除其徽章。
示例: 'LogOutputs',true
PostCreateCallback
— 创建后框架定制
字符串 | 字符向量 | 字符串元胞数组 | 字符向量数组
使用一个或多个创建后回调函数来定制测试框架。后创建回调函数在创建框架后执行。要指定多个回调,请用逗号分隔。回调按照您列出的顺序执行。有关更多信息,请参阅 自定义测试框架。
示例: "PostCreateCallback","HarnessCallback"
示例: "PostCreateCallback",{"HarnessCallback","SecondCallback"}
示例: "PostCreateCallback",["HarnessCallback","SecondCallback"]
PostRebuildCallback
— 重建后的框架定制
字符向量 | 字符串
使用重建后回调函数来定制测试框架。后重建回调函数框架重建之后执行。有关更多信息,请参阅 自定义测试框架。
示例: 'PostRebuildCallback','HarnessCustomization'
数据类型: char
ScheduleInitTermReset
— 驱动模型初始化、重置和终止端口
false
或 0
(默认) | true
或 1
使用所选的测试框架源来驱动模型初始化、重置和终止端口的选项,指定为数字或逻辑 1
(true
) 或 0
(false
)。此选项仅适用于为模块创建的框架。对于子系统模型,此选项设置为 false
。
示例: 'ScheduleInitTermReset',true
SchedulerBlock
— 包含周期信号和函数调用的调度程序模块
'Test Sequence'
| 'MATLAB Function'
| 'Chart'
| 'None'
在测试框架中包含调度程序模块的选项,指定为 Test Sequence
、MATLAB Function
、Chart
或 None
。如果测试框架是为模型模块或 Model 模块创建的,并且包含函数调用或周期性事件端口,则包含该模块。如果不包括调度程序模块并将所有端口连接到框架源模块,请使用 'None'
。如果您正在创建多个框架,则会向每个框架添加相同类型的调度程序模块。
示例: 'SchedulerBlock','Test Sequence'
示例: 'SchedulerBlock','None'
AutoShapeInputs
— 将标量和双精度值源与输入信号维度进行匹配
false
或 0
(默认) | true
或 1
选择塑造标量和双精度值来匹配被测组件输入信号的维度,指定为数字或逻辑 1
(true
) 或 0
(false
)。此选项仅适用于具有 Inport、Constant、Signal Editor、From Workspace 或 From File 模块的框架。对于子系统模型,此选项设置为 false
。
示例: 'AutoShapeInputs',true
FunctionInterfaceName
— 可重用库子系统功能接口的名称
字符串 | 字符向量
可重用库子系统函数接口的名称,指定为字符串或字符向量。该函数为可重用库子系统的功能接口创建一个测试框架。您无法在 sl_customization.m
文件中或通过使用 sltest.harness.setHarnessCreateDefaults
设置此属性的默认值。如果在创建多个框架时指定 FunctionInterfaceName
,则会发生错误。
示例: 'FunctionInterfaceName','double_RLS'
输出参量
result
— 已创建的框架的信息、错误和警告
struct
以结构体返回所创建框架的框架信息、错误和警告。该结构体具有与 harnessOwner
输入参量相同的尺寸。如果该函数成功为组件创建了框架,则 harnessInfo
字段是一个包含有关所创建框架信息的结构体。如果框架未成功创建,则错误字段将包含该错误作为对象。警告字段包含框架创建过程中出现的警告消息。
harnessInfo
结构字段包括:model
、name
、description
、ownerHandle
、ownerFullPath
、ownerType
、verificationMode
、rebuildOnOpen
、rebuildModelData
、postRebuildCallback
、graphical
、origSrc
、origSink
、synchronizationMode
、existingBuildFolder
和 functionInterfaceName
。
版本历史记录
在 R2015a 中推出R2022b: 批量框架创建
现在,您可以使用 harnessOwner
输入参量和这些新的或更新的属性同时创建多个框架:
新的可选 result
输出返回有关创建的框架、错误和警告消息的信息。
R2022a: 组件框架打开时主模型解锁
当组件的测试框架打开时,主模型不会被锁定以进行编辑、保存或仿真。被测组件的锁定取决于 SynchronizationMode
属性。
R2021b: LogHarnessOutputs
属性已重命名为 LogOutputs
LogHarnessOutputs
现在称为 LogOutputs
。
R2021a: 对框架输出信号
LogHarnessOutputs
属性打开被测组件所有输出的信号记录。
R2018b: DriveFcnCallWithTestSequence
不推荐
从 R2018b 开始,您可以使用 'SchedulerBlock'
选项在创建测试框架时包含调度程序模块。名称值参量 'SchedulerBlock','Test Sequence'
使用 Test Sequence 调度程序模块并替换 'DriveFcnCallWithTestSequence',true
。
'SchedulerBlock'
提供了更多的调度程序选项,并且与 'DriveFcnCallWithTestSequence'
相比创建了一个简化的模块接口。要更新您的代码,请将 'DriveFcnCallWithTestSequence',true
替换为 'SchedulerBlock','Test Sequence'
。
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)