变体模块的模型覆盖率
Simulink® Coverage™ 可以分析并报告包含变体模块(例如 Variant Source 或 Variant Subsystem 模块)的模型的覆盖率数据。当您仿真包含一个或多个启用了覆盖率的变体模块的模型时,Simulink Coverage 会根据变模块的类型和变体激活时间参数报告覆盖率结果。
对于 Variant Source 和 Variant Sink 模块,Simulink Coverage 分别分析变体选择的上游和下游模块。Variant Source 和 Variant Sink 模块本身不受覆盖率。对于 Variant Subsystem 和 Variant Model 模块,Simulink Coverage 分析所选度量的子系统或模型模块的内容。
更新时和编译时变量
如果将变体模块的变体激活时间参数设置为更新图、更新图时分析所有选择项或代码编译,则 Simulink Coverage 仅报告仿真期间活动的变体选择的覆盖率。
提示
您无法聚合针对更新时或编译时变体的不同活动变体选择的仿真覆盖率。如果您想测试非活动变体选择,请将变体激活时间设置为启动。
例如,假设您有一个包含具有两个变体选择的 Variant Subsystem 模块的模型。Variant Subsystem 模块的变体激活时间参数设置为更新图。
如果 Subsystem1
在仿真中处于活动,您将收到 Subsystem1
而不是 Subsystem2
的覆盖率结果。
在覆盖率结果中,Subsystem1
为红色,表示覆盖率不完整,Subsystem2
为灰色,表示未经分析。此外,覆盖率报告摘要省略了未活动的变体选择。
当您将变体模块的变体激活时间参数设置为更新图、更新图时分析所有选择项或代码编译时,更改活动变体会对模型进行结构性更改。由于模型的覆盖率数据仅在模型未更改或关闭时才有效,因此您无法聚合使用不同活动变体仿真的同一模型的覆盖率。如果您想测试多个活动变体并聚合它们的覆盖率,请将变体激活时间参数更改为启动。
启动变体
如果将变体模块的变体激活时间参数设置为启动,Simulink Coverage 将报告所有变体选择的覆盖率,即使它们在仿真期间不活动。您还可以聚合具有不同活动变体选择的仿真的覆盖率。
例如,如果您修改上例中的模型,并将变体激活时间设置为启动,且 Subsystem1
在仿真中处于活动,那么您将获得与更新时间变量相同的 Subsystem1
覆盖率。然而,Simulink Coverage 还报告了非活动变体 Subsystem2
。
覆盖率结果中 Subsystem1
和 Subsystem2
都是红色,表示覆盖率不完整。覆盖率报告摘要包括两种变体选择。
非活动变体的覆盖率为 0%,因为它们在仿真期间未执行。为了增加 Variant_Subsystem
的报告覆盖率,您可以使用 Subsystem2
作为活动变体再次仿真模型,然后聚合覆盖率结果。
自定义包含变体的模型的覆盖率报告
在为使用变体模块的模型创建覆盖率报告时,您可以聚合来自多个仿真的覆盖率数据,并指定是否包含或排除非活动变体。
从覆盖率报告中排除非活动变体
覆盖率报告不包括更新时和编译时 Simulink 变体的非活动配置。
对于将变体激活时间参数设置为启动的 Simulink 变体模块和 Stateflow® 图中的变体配置,覆盖率报告默认包含非活动变体选择。您可以通过选择排除变体的非活动选择项参数来选择在覆盖率报告中排除非活动变体选择:
在配置参数窗口的左侧窗格中,点击覆盖率。
展开高级参数然后选择排除变体的非活动选择项。
您还可以通过输入以下内容以编程方式设置此参数:
set_param(modelName,'CovExcludeInactiveVariants',1)
您还可以在仿真完成后使用以下方法之一更改启动 Simulink 变体和 Stateflow 图中的变体配置的报告行为:
在覆盖率结果资源管理器中,选择或清除选项排除变体的非活动选择项。
在生成覆盖率报告之前更改
cvdata
对象中excludeInactiveVariants
属性的值。如果您在 Simulink Test 中使用测试管理器,请在测试浏览器中,在结果摘要级别,在聚合覆盖率结果下,选择排除非活动变体。
聚合包含变体的模型的覆盖率数据
有两种方法可以聚合包含 Simulink 变体和 Stateflow 图中的变体配置的模型的覆盖率数据:
在配置参数对话框中,点击覆盖率,然后展开高级参数并选择在覆盖率报告中包括累积数据参数。当您选择此参数运行两个或更多个仿真时,覆盖率详细信息将显示这些仿真的聚合覆盖率结果。
以编程方式运行覆盖率分析并使用
+
运算符聚合cvdata
对象。
如果通过使用 +
运算符或更改排除变体的非活动选择项参数来聚合两个具有不同 excludeInactiveVariants
属性值的 cvdata
属性,则生成的聚合 cvdata
对象的此属性将设置为 0
。结果是,聚合覆盖率报告显示非活动变体,就好像未选择排除变体的非活动选择项参数一样,即使在一次仿真中选择了该参数。
相关主题
另请参阅
cvdata
| Variant Subsystem, Variant Model, Variant Assembly Subsystem | Variant Source | Variant Sink