sltest.harness.create
创建测试框架
语法
说明
sltest.harness.create( 使用默认属性为模型组件或组件 harnessOwner)harnessOwner 创建一个或多个测试框架。模型的活动和非活动配置集被复制到创建的框架中。
sltest.harness.create( 使用由一个或多个名称-值参量指定的附加选项。如果创建多个框架,则所有框架都会使用指定的属性值。您可以在创建单个框架之后更改其属性。harnessOwner,Name=Value)
创建框架并返回有关所创建框架的信息。result = sltest.harness.create(harnessOwner,___)
示例
为 Controller 模型的 f14 子系统创建一个框架。
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® 图作为 Controller 模型的 f14 子系统的测试框架调度程序。
openExample("f14"); sltest.harness.create("f14/Controller",SchedulerBlock="Chart");
为 Controller 子系统创建一个框架,为 Aircraft Dynamics Model 模型的 f14 子系统创建一个框架。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 模块信宿,用于测试组件。
harnessOwners 中组件的顶层模型,指定为顶层模型的数字句柄或模型名称的字符串或字符向量。如果创建多个测试框架,则此名称-值参量是必需的;如果仅创建一个框架,则该参数将被忽略。
框架名称,指定为字符向量或字符串。如果您创建多个框架,该函数将使用 Name 参量作为所创建框架的前缀。例如,如果指定名称为 myHarness,则创建的框架为 myHarness、myHarness1 等等。
框架描述,指定为字符向量或字符串。
示例: Description="A test harness"
被测组件在框架中的输入,指定为 "Inport"、"Signal Editor"、"From Workspace"、"From File"、"Test Sequence"、"Playback"、"Chart"、"Constant"、"Ground""None",或 "Custom"。
示例: Source="Signal Editor"
当 Source 设置为 "Custom" 时,用作源的库模块的路径。
示例: CustomSourcePath="simulink/Sources/Sine Wave"
被测组件在测试框架中的输出,指定为 "Outport"、"Scope"、"To Workspace"、"To File"、"Terminator"、"Record"、"None" 或 "Custom"。
如果您的测试框架包含 To Workspace 模块,则测试运行完成后,该模块变量不会保存在基础工作区中。测试完成后,基础工作区恢复到原始状态。
示例: Sink="Scope"
对于自定义接收器,用作接收器的库模块的路径,指定为字符向量或字符串。
示例: CustomSinkPath="simulink/Sinks/Display"
向测试框架添加单独的 Test Assessment 模块的选项,指定为数字或逻辑 1 (true)或 0 (false)。
示例: SeparateAssessment=true
用于指定被测组件何时同步主模型和测试框架的选项。子系统模型测试框架始终与其底层模型同步。
"SyncOnOpenAndClose"在测试框架打开时从主模型重建被测组件,并在测试框架关闭时将更改从被测组件推送到主模型。当测试框架打开时,
"SyncOnOpen"从主模型重建被测组件。当测试框架关闭时,它不会将被测试组件的更改推送到主模型。仅当您手动启动重建或推送整个测试框架时,
"SyncOnPushRebuildOnly"才会重建并推送更改。
有关更多信息,请参阅同步测试框架和模型之间的更改。
示例: SynchronizationMode="SyncOnOpen"
指定不编译主模型的框架创建选项,指定为数字或逻辑 1 (true) 或 0 (false)。对于子系统模型测试框架,此选项设置为 true。
false 编译模型并运行其他操作以支持框架构建。true 无需模型编译即可创建框架。
示例: CreateWithoutCompile = false
用于指定在测试框架中使用的模块类型的模块的选项,指定为 Normal、SIL 或 PIL。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 文件或框架文件夹的路径,指定为字符向量或字符串。如果您未指定框架路径或使用 sltest.harness.setHarnessCreateDefaults 函数或 sl_customization.m 文件设置框架路径,则该函数将使用当前工作目录作为框架路径。当您创建框架时,框架文件路径或文件夹不需要位于 MATLAB® 路径上。但是,要打开测试框架,框架或其文件夹必须位于 MATLAB 路径上。
对于没有客户端或服务器端口的被测模型或组件,HarnessPath 适用于外部框架,并且仅当您将 SaveExternally 设置为 true 时才适用。指定外部框架文件使用的路径,或者,如果创建多个框架,则指定框架文件夹的路径。
对于具有客户端或服务器端口的被测模型或组件,HarnessPath 指定框架文件夹并适用于内部和外部框架。对于外部框架,指定的文件夹包含测试框架和模拟架构模型。对于内部框架,该文件夹仅包含模拟架构模型。框架与主模型一起保存。模拟架构模型包含用于实现与被测组件通信的客户端或服务器组件的模拟组件。有关更多信息,请参阅Service Interfaces Overview (System Composer)。
示例: 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 Sequence、MATLAB Function、Chart 或 None。如果测试框架是为模型模块图或 Model 模块创建的,并且包含函数调用或周期性事件端口,则包含该模块。如果不包括调度程序模块并将所有端口连接到框架源模块,请使用 "None"。如果您正在创建多个框架,则会向每个框架添加相同类型的调度程序模块。
示例: SchedulerBlock="Test Sequence"
示例: SchedulerBlock="None"
塑造标量和双精度值来匹配被测组件输入信号的维度的选项,指定为数字或逻辑 1 (true) 或 0 (false)。此选项仅适用于具有 Inport、Constant、Signal Editor、From Workspace 或 From File 模块的框架。对于子系统模型,此选项设置为 false。
示例: AutoShapeInputs=true
可重用库子系统函数接口的名称,指定为字符串或字符向量。该函数为可重用库子系统的函数接口创建一个测试框架。您无法在 sl_customization.m 文件中或通过使用 sltest.harness.setHarnessCreateDefaults 设置此属性的默认值。如果在创建多个框架时指定 FunctionInterfaceName,则会发生错误。
示例: FunctionInterfaceName="double_RLS"
输出参量
以结构体返回所创建框架的框架信息、错误和警告。该结构体具有与 harnessOwner 输入参量相同的维度。如果该函数成功为组件创建了框架,则 harnessInfo 字段是一个包含有关所创建框架信息的结构体。如果框架未成功创建,则错误字段将包含该错误作为对象。警告字段包含框架创建过程中出现的警告消息。
harnessInfo 结构字段包括:model、name、description、ownerHandle、ownerFullPath、ownerType、verificationMode、rebuildOnOpen、rebuildModelData、postRebuildCallback、graphical、origSrc、origSink、synchronizationMode、existingBuildFolder 和 functionInterfaceName。
版本历史记录
在 R2015a 中推出您现在可以为包含客户端或服务器端口的模型或组件创建内部和外部测试框架。对于内部框架,HarnessPath 指定模拟架构模型的文件夹。对于外部框架,HarnessPath 指定框架和模拟架构模型的文件夹。
现在,您可以使用 harnessOwner 输入参量和这些新的或更新的属性同时创建多个框架:
新的可选 result 输出返回有关创建的框架、错误和警告消息的信息。
当组件的测试框架打开时,主模型不会被锁定以进行编辑、保存或仿真。被测组件的锁定取决于 SynchronizationMode 属性。
LogHarnessOutputs 现在称为 LogOutputs。
LogHarnessOutputs 属性打开被测组件所有输出的信号记录。
从 R2018b 开始,您可以使用 "SchedulerBlock" 选项在创建测试框架时包含调度程序模块。名称-值参量 "SchedulerBlock","Test Sequence" 使用 Test Sequence 调度程序模块并替换 "DriveFcnCallWithTestSequence",true。
"SchedulerBlock" 提供了更多的调度程序选项,并且与 "DriveFcnCallWithTestSequence" 相比创建了一个简化的模块接口。要更新您的代码,请将 "DriveFcnCallWithTestSequence",true 替换为 "SchedulerBlock","Test Sequence"。
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)