使用 SIL/PIL 管理器的单元测试子系统代码
如果您的模型包含子系统,您可以使用 Simulink® Test™ 和 SIL/PIL 管理器对从子系统生成的代码执行单元测试。此工作流测试生成的子系统代码,将其作为从父模型生成的代码的一部分。
要对从原子子系统生成的代码执行单元测试,请执行以下操作:
打开包含原子子系统的模型。例如,在命令行窗口中,输入:
openExample('ecoder/SILPILVerificationExample', ... supportingFile='SILBlock.slx')
在新文件夹中,将模型另存为
plant_model
。修改此工作流不支持的配置参数设置。在命令行窗口中,输入:
set_param('plant_model', ... 'CreateSILPILBlock','None', ... 'PreserveStaticInFcnDecls', 'Off'); % For this example, use these values for block parameters. set_param('plant_model/Controller', ... 'RTWSystemCode','Nonreusable function', ... 'RTWFileNameOpts', 'Auto');
注意
对于映射到 AUTOSAR 可运行实体的函数调用子系统,即使在以下情况下,也可以使用此工作流:
模块参数
TreatAsAtomicUnit
不为'on'
。模块参数
RTWSystemCode
不为'Nonreusable function'
或'Reusable function'
。
有关限制的详细信息,请参阅Atomic Subsystem Workflow Limitations。
为包含这些原子子系统的模型生成代码。在命令行窗口中,输入:
slbuild('plant_model')
为子系统创建一个测试框架。右键点击
Controller
子系统,然后选择测试框架 > 为 '控制器' 创建。设置框架属性:
名称 -
controller_subsystem_harness
源和信宿:
Inport
和Outport
选择创建后打开框架。
点击确定。
Simulink Test 为
Controller
子系统创建一个测试框架。指定保存数据的格式。在命令行窗口中,输入:
set_param('controller_subsystem_harness', ... 'SaveFormat','Dataset')
在测试框架窗口中,打开 SIL/PIL 管理器。在 App 选项卡上,点击 SIL/PIL 管理器。
如果需要,配置代码覆盖率。
运行背靠背模型和 SIL 仿真:
在模式部分中,选择自动验证。
在运行自动验证部分中,点击运行验证。
从结果库中,您可以:
使用仿真数据检查器以分析结果。例如,比较来自模型和 SIL 仿真的
controller_model_output
信号。导出一个等效性测试用例。
有关详细信息,请参阅Analyze Results and Export Test Cases。
有关限制的详细信息,请参阅Subsystem Block SIL/PIL Limitations。