В этом примере показано, как выбрать метрику и добавить правило, которое использует эту метрику. В этом примере вы создаете правило, чтобы обосновать неудовлетворенное решение для блока Насыщения.
Откройте модель и включите анализ покрытия
Загрузите модель в память.
Использование Simulink.SimulationInput объект, чтобы сконфигурировать покрытие для модели.
Симулируйте модель с помощью SimulationInput объект как вход.
Просмотрите результаты покрытия перед применением фильтра. Вы можете получить доступ к покрытию с помощью decisioninfoили можно просмотреть HTML с помощью cvhtml.
Оба decisioninfo и cvhtml показать тот же результат 50% Decision Coverage. Если вы не намерены свои текущие тесты для осуществления этого результата, можно обосновать результат, поэтому он больше не указывается как недостающее покрытие.
В этом примере мы оправдываем false результаты принятия решения по input > lower limit цель принятия решения в блоке Насыщение.
Обоснование отсутствующей цели условия
MetricSelector объекты принимают путь к блоку или указатель на блок как второй вход. Получите указатель на блок Насыщения при помощи getSimulinkBlockHandle.
Поскольку обоснованная цель является результатом решения, первый вход в конструктор селектора метрики slcoverage.MetricSelectorType.DecisionOutcome. Второй вход является указателем на блок. Последние два являются индексом цели, которая должна быть обоснована, и индексом результатов этой цели, соответственно.
Потому что input > lower limit цель решения является первой целью для блока Насыщения, его целевой индекс 1. Потому что false результатом этой цели является первый результат, его индекс результатов также 1. Поэтому последние два входа 1,1.
Создайте фильтр и правило. В этом случае мы используем режим обоснования фильтра по умолчанию. Затем добавьте правило к фильтру с помощью addRule способ.
Сохраните фильтр в файл фильтра с помощью save способ. Затем примените файл фильтра к cvdata объект путем назначения filter свойство новому файлу фильтра.
Повторно сгенерируйте результаты покрытия для блока Насыщения, используя новую отфильтрованную cvdata объект.
В отчете HTML выделен недостающий результат решения, чтобы указать, что он обоснован. Decision Coverage для блока Насыщения теперь составляет 75%.