Пакет: slcoverage
Фильтр покрытия устанавливается
Используйте объект slcoverage.Filter
класс, чтобы отфильтровать неудовлетворенные цели покрытия путем создания правил с помощью slcoverage.FilterRule
класс.
slcoverage.Filter
классом является handle
класс.
создает filt
= slcoverage.Filter()slcoverage.Filter
объект.
создает filt
= slcoverage.Filter(filterFile
)slcoverage.Filter
объект, который содержит правила фильтра, сохраненные в filterFile
.
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');
Создайте правило отфильтровать блок Saturation с помощью slcoverage.FilterRule
с селектором как первый вход и объяснение как второй вход.
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
класс. Чтобы исключить Переключаемую подсистему config, используйте 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);
Вы видите, что прикладное покрытие просачивается раздел Objects Filtered from Coverage Analysis отчета покрытия.
slcoverage.BlockSelector
| slcoverage.FilterRule
| slcoverage.MetricSelector
| slcoverage.SFcnSelector
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.