覆盖率过滤
如果您的覆盖率结果包含未满足的覆盖率结果,并且这些未满足的结果是可以接受的,您可以过滤这些结果,以免它们分散您对覆盖率报告重点部分的注意力。您可以在运行仿真之前或之后创建和应用覆盖率过滤器。
何时使用覆盖率过滤
大型模型可能包含故意不实现 100% 覆盖率的设计元素。例如,由于防御性编码实践,您的模型可能包含无效逻辑。模型还可以包含必须记录 100% 覆盖率的设计元素,但实际并未达到 100% 的覆盖率。您可以暂时或永久地从覆盖率记录中过滤掉这些元素,以便专注于您想要测试的元素。
提示
如果您有一个包含失效逻辑的模型,并且您拥有 Simulink® Design Verifier™ 许可证,则可以使用 Simulink Design Verifier 来自动识别和创建失效逻辑的过滤器规则。有关详细信息,请参阅使用 Simulink Design Verifier 为死逻辑生成过滤器规则。
覆盖率过滤器规则的类型
您可以创建两种类型的过滤器规则:
排除规则将某些模型元素排除在覆盖率范围报告之外。
理由规则用于证明某些模型要素或覆盖率结果的申述,使其在覆盖率报告中不显示为未满足。
排除项不计入覆盖率报告。当您排除模型元素时,覆盖率报告不会显示这些元素的覆盖率结果。已申述对象会对覆盖率报告产生影响。当您申述覆盖率报告时,会在覆盖率报告的 覆盖率摘要 中以浅蓝色突出显示该结果,并显示缺少覆盖率的理由。覆盖率报告在计算覆盖率百分比时,将这些合理的结果视为已满足。
您可以根据覆盖率报告创建覆盖率过滤器规则。您可以在仿真之前或之后创建覆盖率过滤器规则。您可以将覆盖率过滤器规则保存在覆盖率过滤器文件中。有关如何创建覆盖率过滤器的更多信息,请参阅 创建和使用覆盖率过滤器。
在覆盖率报告的详细信息部分中,已申述对象的覆盖率结果显示为:((已覆盖结果数 + 已申述结果数)/可能的决策数)。

有关过滤模型元素的更多信息,请参阅 创建、编辑和查看覆盖率过滤器规则 和 创建和使用覆盖率过滤器。
支持覆盖率过滤的模型元素
您可以为以下内容创建覆盖率过滤器规则:
获得覆盖率的 Simulink 模块,包括 MATLAB Function 模块
子系统及其内容。覆盖率报告不会显示被排除的子系统或其子系统的覆盖率结果。
各个库链接的模块或图
链接到某个库的所有引用模块
Stateflow® 图、子图、状态、转移和事件
对于软件在环模式下的模型,您可以排除代码文件,包括通过 S-Function 或 C Caller 模块手动集成到模型中的文件。您还可以对代码覆盖率结果申述。有关详细信息,请参阅使用代码窗格查看和过滤代码覆盖率结果。
如果您过滤一个 Model 模块,Simulink Coverage™ 只会过滤掉 Model 模块本身的模块执行覆盖率,而不会过滤掉引用模型的内容。如果要忽略引用模型的内容,请将覆盖率分析的范围模型配置参数设置为引用模型,并使用选择模型对话框仅选择要分析覆盖率的模型。
有关获得覆盖率的完整模型对象列表,请参阅接受覆盖率的模型对象。
另请参阅
覆盖率过滤器文件名 | slcoverage.Filter | slcoverage.FilterRule | slcoverage.BlockSelector | slcoverage.CodeSelector | slcoverage.MetricSelector | slcoverage.Selector | slcoverage.SFcnSelector