Main Content

本页采用了机器翻译。点击此处可查看英文原文。

sltest.harness.create

创建测试框架

说明

示例

sltest.harness.create(harnessOwner) 使用默认属性为模型组件或组件 harnessOwner 创建一个或多个测试框架。模型的活动和非活动配置集被复制到创建的框架中。

示例

sltest.harness.create(harnessOwner,Name,Value) 使用由一个或多个 NameValue 对参量指定的附加选项。如果创建多个框架,则所有框架都会使用指定的属性值。您可以在创建单个框架之后更改其属性。

示例

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");

输入参数

全部折叠

模型或组件句柄或路径,指定为完整模块路径的字符串或字符向量或数字组件句柄对象的双精度值。为多个零部件创建框架时,请使用以下格式之一指定框架所有者:

  • 组件模块路径的字符元胞数组或字符串数组

  • 组件模块句柄的双精度值组

  • 组件模块路径的 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 模块信宿,用于测试组件。

harnessOwners 中组件的顶层模型,指定为顶层模型的数字句柄或模型名称的字符串或字符向量。如果创建多个测试框架,则此名称-值参量是必需的;如果仅创建一个框架,则该参数将被忽略。

框架名称,指定为字符向量或字符串。如果您创建多个框架,该函数将使用 Name 参量作为所创建框架的前缀。例如,如果指定名称为 myHarness,则创建的框架为 myHarnessmyHarness1 等等。

框架描述,指定为字符向量或字符串。

示例: 'Description','A test harness'

框架中被测组件的输入,指定为 InportSignal EditorFrom WorkspaceFrom FileTest SequenceChartNoneCustom

示例: 'Source','Signal Editor'

对于设置为 CustomSource,用作源的库模块的路径。

示例: 'CustomSourcePath','simulink/Sources/Sine Wave'

框架中被测组件的输出,指定为 OutportScopeTo WorkspaceTo FileTerminatorNoneCustom

如果您的测试框架包含 To Workspace 模块,则测试运行完成后,该模块变量不会保存在基础工作区中。测试完成后,基础工作区恢复到原始状态。

示例: 'Sink','Scope'

对于自定义信宿,用作信宿的库模块的路径,指定为由 'CustomSinkPath' 和路径组成的逗号分隔的对。

示例: 'CustomSinkPath','simulink/Sinks/Display'

选择向测试框架添加单独的 Test Assessment 模块,指定为数字或逻辑 1true)或 0false)。

示例: 'SeparateAssessment',true

用于指定被测组件何时同步主模型和测试框架的选项。子系统模型测试框架始终与其底层模型同步。

  • 'SyncOnOpenAndClose' 在测试框架打开时从主模型重建被测组件,并在测试框架关闭时将更改从被测组件推送到主模型。

  • 当测试框架打开时,'SyncOnOpen' 从主模型重建被测组件。当测试框架关闭时,它不会将被测试组件的更改推送到主模型。

  • 仅当您手动启动重建或推送整个测试框架时,'SyncOnPushRebuildOnly' 才会重建并推送更改。

有关详细信息,请参阅 同步测试框架和模型之间的更改

示例: 'SynchronizationMode','SyncOnOpen'

指定不编译主模型的框架创建选项,指定为数字或逻辑 1 (true) 或 0 (false)。对于子系统模型测试框架,此选项设置为 true

false 编译模型并运行其他操作以支持框架构建。true 无需模型编译即可创建框架。

示例: 'CreateWithoutCompile',false

用于指定在测试框架中使用的模块类型的模块,指定为 NormalSILPIL。SIL 和 PIL 模块需要 Simulink® Coder™。对于子系统模型,此选项设置为 Normal

示例: 'VerificationMode','SIL'

使用软件在环 (SIL) 或处理器在环 (/PIL) 验证的现有生成代码的主构建文件夹的路径,指定为字符串或字符向量。如果您指定构建文件夹,该函数将使用该文件夹中的现有代码,从而缩短框架创建时间。如果您未指定构建文件夹,该函数将重新生成代码。如果您创建多个框架,则 ExistingBuildFolder 不适用。您无法在 sl_customization 文件中或通过使用 sltest.harness.setHarnessCreateDefaults 设置此属性的默认值。

示例: 'ExistingBuildFolder','C:\TestMdl\SILHarness\Amplifier_ert_rtw'

打开时重建框架的选项,指定为数字或逻辑 1 (true) 或 0 (false)。

示例: 'RebuildOnOpen',true

在测试框架重建期间更新配置集和模型工作区条目的选项,指定为数字或逻辑 1 (true) 或 0 (false)。对于子系统模型测试框架,此选项设置为 true

示例: 'RebuildModelData',true

选择将每个测试框架保存为单独的 SLX 文件,指定为数字或逻辑 1 (true) 或 0 (false)。一个模型不能同时使用外部和内部测试框架存储。如果模型已经有测试框架,则新的测试框架将遵循现有框架的存储类型,而此选项不会覆盖现有框架的存储类型。参见 管理测试框架

示例: 'SaveExternally',true

外部测试框架 SLX 文件的路径,或者,如果您创建多个框架,则为外部框架文件文件夹的路径,指定为字符向量或字符串。仅当您将 SaveExternally 指定为 true 时,框架路径才适用。

示例: 'HarnessPath','C:\MATLAB\SafetyTests'

记录被测组件的所有框架输出信号,指定为数字或逻辑 1 (true) 或 0 (false)。当值为 true 时,将记录所有信号,除了与日志记录不兼容的信号。在测试用例执行期间记录信号并返回测试结果。如果输出信号没有名称或传播名称,则使用 <component under test name>:<output port number> 格式框架中为其分配一个名称。要删除记录的信号,您可以手动删除其徽章。

示例: 'LogOutputs',true

使用一个或多个创建后回调函数来定制测试框架。后创建回调函数在创建框架后执行。要指定多个回调,请用逗号分隔。回调按照您列出的顺序执行。有关更多信息,请参阅 自定义测试框架

示例: "PostCreateCallback","HarnessCallback"

示例: "PostCreateCallback",{"HarnessCallback","SecondCallback"}

示例: "PostCreateCallback",["HarnessCallback","SecondCallback"]

使用重建后回调函数来定制测试框架。后重建回调函数框架重建之后执行。有关更多信息,请参阅 自定义测试框架

示例: 'PostRebuildCallback','HarnessCustomization'

数据类型: char

使用所选的测试框架源来驱动模型初始化、重置和终止端口的选项,指定为数字或逻辑 1 (true) 或 0 (false)。此选项仅适用于为模块创建的框架。对于子系统模型,此选项设置为 false

示例: 'ScheduleInitTermReset',true

在测试框架中包含调度程序模块的选项,指定为 Test SequenceMATLAB FunctionChartNone。如果测试框架是为模型模块或 Model 模块创建的,并且包含函数调用或周期性事件端口,则包含该模块。如果不包括调度程序模块并将所有端口连接到框架源模块,请使用 'None'。如果您正在创建多个框架,则会向每个框架添加相同类型的调度程序模块。

示例: 'SchedulerBlock','Test Sequence'

示例: 'SchedulerBlock','None'

选择塑造标量和双精度值来匹配被测组件输入信号的维度,指定为数字或逻辑 1 (true) 或 0 (false)。此选项仅适用于具有 InportConstantSignal EditorFrom WorkspaceFrom File 模块的框架。对于子系统模型,此选项设置为 false

示例: 'AutoShapeInputs',true

可重用库子系统函数接口的名称,指定为字符串或字符向量。该函数为可重用库子系统的功能接口创建一个测试框架。您无法在 sl_customization.m 文件中或通过使用 sltest.harness.setHarnessCreateDefaults 设置此属性的默认值。如果在创建多个框架时指定 FunctionInterfaceName,则会发生错误。

示例: 'FunctionInterfaceName','double_RLS'

输出参量

全部折叠

以结构体返回所创建框架的框架信息、错误和警告。该结构体具有与 harnessOwner 输入参量相同的尺寸。如果该函数成功为组件创建了框架,则 harnessInfo 字段是一个包含有关所创建框架信息的结构体。如果框架未成功创建,则错误字段将包含该错误作为对象。警告字段包含框架创建过程中出现的警告消息。

harnessInfo 结构字段包括:modelnamedescriptionownerHandleownerFullPathownerTypeverificationModerebuildOnOpenrebuildModelDatapostRebuildCallbackgraphicalorigSrcorigSinksynchronizationModeexistingBuildFolderfunctionInterfaceName

版本历史记录

在 R2015a 中推出

全部展开