slcoverage.Filter 类
命名空间: slcoverage
覆盖率过滤器设置
描述
使用 slcoverage.Filter 类的对象通过使用 slcoverage.FilterRule 类创建规则来过滤掉不满足的覆盖率目标。
slcoverage.Filter 类是 handle 类。
创建对象
描述
创建一个 filt = slcoverage.Filter()slcoverage.Filter 对象。
创建一个 filt = slcoverage.Filter(filterFile)slcoverage.Filter 对象,其中包含保存在 filterFile 中的过滤规则。
输入参量
CVF 格式的过滤文件,指定为文件路径名的字符数组或字符数组的元胞数组。您不需要包含文件扩展名。
示例: 'myfilt', 'filters\myfilt', {'myfilt1', 'myfilt2'}
方法
addRule | 向过滤器添加覆盖率过滤器规则 |
removeRule | 从过滤器规则集中删除规则 |
rules | 过滤器规则 |
setFilterName | 设置覆盖率过滤器对象的名称 |
filterName | 获取覆盖率过滤器对象的名称 |
setFilterDescription | 设置覆盖率过滤器对象的描述 |
filterDescription | 获取覆盖率过滤器对象的描述 |
save | 将覆盖率过滤器对象保存到覆盖率过滤器文件 |
示例
此示例显示如何向覆盖率过滤器文件添加规则。
创建一个过滤器对象,并使用 BlockSelector 类为 BlockSelector 模型中的 Saturation 模块创建一个 slvnvdemo_covfilt 对象。
filt = slcoverage.Filter; blockSel = slcoverage.BlockSelector(slcoverage.BlockSelectorType.BlockInstance,... 'slvnvdemo_covfilt/Saturation');
创建一个规则,使用 slcoverage.FilterRule 过滤 Saturation 模块,以选择器作为第一个输入,以基本原理作为第二个输入。
rule = slcoverage.FilterRule(blockSel,'Edge case');
使用 addRule 类的 slcoverage.Filter 方法将规则添加到过滤器对象。
addRule(filt,rule);
使用 save 类的 slcoverage.Filter 方法将具有新规则的过滤器保存到过滤器文件中。
save(filt,'myFilterFile')
此示例显示如何创建过滤器对象并添加规则以将子系统排除在覆盖率分析之外。
打开 slvnvdemo_covfilt 模型。使用 SimulationInput 对象启用覆盖率记录并指定覆盖率设置。
modelName = 'slvnvdemo_covfilt'; load_system(modelName) simIn = Simulink.SimulationInput(modelName); simIn = setModelParameter(simIn,'CovEnable','on'); simIn = setModelParameter(simIn,'CovMetricStructuralLevel','MCDC'); simIn = setModelParameter(simIn,'CovSaveSingleToWorkspaceVar','on'); simIn = setModelParameter(simIn,'CovSaveName','covData');
仿真模型。覆盖率数据存储在为 CovSaveName 属性提供的值中。
simOut = sim(simIn); covData = simOut.covData;
您可以使用 slcoverage.BlockSelector 类来过滤一个模块。要排除可切换配置子系统,请使用 slcoverage.BlockSelectorType.SubsystemAllContent 作为第一个输入。
subsysSel = slcoverage.BlockSelector(... slcoverage.BlockSelectorType.SubsystemAllContent,... 'slvnvdemo_covfilt/Switchable config');
通过将选择器、基本原理和排除过滤模式作为输入来创建过滤器规则。
rule = slcoverage.FilterRule(subsysSel,... 'Unused configuration',... slcoverage.FilterMode.Exclude);
创建一个 slcoverage.Filter 对象,然后向其中添加规则。
filt = slcoverage.Filter; addRule(filt,rule);
将过滤器保存到名为 blockFilter.cvf 的文件中。要创建使用此覆盖率过滤器的报告,请将过滤器文件作为值添加到 filter 的 covData 属性,并使用 coverageData.html 创建名为 covData 的报告。
save(filt,'blockFilter') covData.filter = 'blockFilter'; cvhtml('coverageData',covData);
如果您有多个过滤器文件,每个文件都包含自己的一组规则,则可以通过创建过滤器文件名或路径名的元胞数组将它们应用于覆盖率结果集。在此示例中,您将两个过滤器文件应用于单个 cvdata 对象,然后查看报告以查看过滤器是否已应用。
将 slvnvdemo_covfilt 模型加载到内存中。
modelName = 'slvnvdemo_covfilt';
load_system(modelName)
使用 Simulink.SimulationInput 对象设置覆盖率设置,并使用 sim 仿真模型。
simIn = Simulink.SimulationInput(modelName); simIn = setModelParameter(simIn,'CovEnable','on'); simIn = setModelParameter(simIn,'CovMetricStructuralLevel','MCDC'); simIn = setModelParameter(simIn,'CovSaveSingleToWorkspaceVar','on'); simIn = setModelParameter(simIn,'CovSaveName','covData'); simOut = sim(simIn);
将两个过滤器作为元胞数组分配给过滤器属性,以将其应用于 cvdata 对象。
covData.filter = {'filter_1','filter_2'};
cvhtml('twoFiltersCovData',covData);
您可以在覆盖率报告的从覆盖率分析中过滤的对象部分中看到已应用的覆盖率过滤器。
版本历史记录
在 R2017b 中推出
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)