主要内容

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

使用理由规则来过滤代码覆盖率结果

此示例展示了如何在软件在环 (SIL) 或处理器在环 (PIL) 模式下收集模型的覆盖率后,过滤覆盖率报告中的代码覆盖率结果。

生成代码覆盖率数据

首先,将模型置于 SIL/PIL 模式。在 Simulink® 窗口中,点击 App,然后在代码验证、确认和测试下点击 SIL/PIL 管理器。在 SIL/PIL 选项卡上,将自动验证更改为仅 SIL/PIL 仿真

在此示例模型中,默认启用覆盖率。如果您使用自己的模型,请在配置参数窗口中启用覆盖率。有关覆盖率设置的更多信息,请参阅指定覆盖率选项

通过点击运行 SIL/PIL 仿真模型并收集覆盖率。当您仿真模型时,Simulink® 模型旁边会打开一个停靠窗格。点击覆盖率详细信息标签可查看代码覆盖率报告。

### Searching for referenced models in model 'slvnvdemo_counter'.
### Total of 1 models to build.
### Starting build procedure for: slvnvdemo_counter
### Successful completion of build procedure for: slvnvdemo_counter

Build Summary

Top model targets:

Model              Build Reason                                         Status                        Build Duration
====================================================================================================================
slvnvdemo_counter  Information cache folder or artifacts were missing.  Code generated and compiled.  0h 0m 22.195s 

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 24.06s
### Preparing to start SIL simulation ...
Building with 'gcc'.
MEX completed successfully.
### Updating code generation report with SIL files ...
### Starting SIL simulation for component: slvnvdemo_counter
### Application stopped
### Stopping SIL simulation for component: slvnvdemo_counter
### Completed code coverage analysis

使用覆盖率过滤器申述缺失代码覆盖率

如果您的模型具有有意设计的不可达逻辑,例如防御性模型设计或异常处理,则您可以使用覆盖率过滤器申述这种缺失覆盖率。

代码覆盖率报告的摘要部分链接到每个源文件和函数。在此示例中,点击 slvnvdemo_counter_step。代码覆盖率报告跳转到名为 slvnvdemo_counter_step 的函数。在第 2.1 节中,您可以看到决策 (!(slvnvdemo_counter_U.upper >=z rtb_input)) | (!rtb_inputGElower) 内的两个条件在所有时间步中均为 false。

为了申述缺失覆盖率结果,请在分析的条件表中,点击条件 slvnvdemo_counter_U.upper >= rtb_input 旁边的添加申述规则图标。覆盖率结果浏览器打开并创建一个过滤器规则来申述条件 falseslvnvdemo_counter_U.upper >= rtb_input 结果。

在过滤器编辑器窗格中,将名称字段设置为 myCodeCovFilter。您可以将描述字段设置为任何描述性文本。过滤规则部分有两个选项卡,模型代码。在这种情况下,过滤器会出现在代码选项卡上,因为您正在从代码覆盖率报告中进行过滤。您可以双击理由字段来添加原因,例如“预期结果”。

在过滤器编辑器顶部附近的文件名字段下,点击另存为。在保存过滤器窗口中,将过滤器文件命名为 myCodeCovFilter。请注意,过滤器名称和过滤器文件名不必相同。

当您保存过滤器时,代码覆盖率报告会更新并显示已申述结果。

点击 rtb_inputGElower 旁边的添加申述规则过滤器并按照上面列出的步骤,证明第二个条件的 false case。第二条规则被添加到为第一条规则创建的同一过滤文件中。

应用覆盖率过滤器后,您可以创建新的代码覆盖率报告,方法是点击覆盖率结果浏览器左侧窗格中的当前累积数据 (H),然后点击覆盖率数据窗格底部的生成报告。此链接创建一个独立报告,您可以使用它来存档或共享报告。

代码覆盖率报告的摘要部分反映了由于过滤规则而改善的条件覆盖率。

此外,代码覆盖率报告现在显示一个名为从覆盖率分析中过滤的对象的部分,其中显示过滤规则和原理。

另请参阅

主题