Используйте правила обоснования для фильтрации результатов покрытия кода

Этот пример показывает, как фильтровать результаты покрытия кода в отчете о покрытии после сбора покрытия для модели в режиме «цикл» (SIL) или «цикл» (PIL).

Сгенерируйте данные покрытия кода

Сначала переведите модель в режим SIL/PIL. В окне Simulink ® нажмите приложения и в разделе «Проверка кода», «Валидация» и «Тест» выберите SIL/PIL Manager. На вкладке SIL/PIL измените Автоматизированную верификацию на Симуляцию Only.

В этой модели примера покрытие включено по умолчанию. Если вы используете свою собственную модель, включите покрытие в окне Параметры конфигурации. Дополнительные сведения о настройках покрытия см. в разделе «Настройка опций покрытия».

Симулируйте модель и собирайте покрытие, нажимая Запуск SIL/PIL. Когда вы моделируете модель, рядом с моделью Simulink ® открывается закрепленная панель. Перейдите на вкладку «Сведения о покрытии» для просмотра отчета о покрытии кода.

### Starting build procedure for: slvnvdemo_counter
### Successful completion of build procedure for: slvnvdemo_counter

Build Summary

Top model targets built:

Model              Action                       Rebuild Reason                                    
==================================================================================================
slvnvdemo_counter  Code generated and compiled  Code generation information file does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 19.015s
### 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
### 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. Откроется обозреватель результатов покрытия, который добавляет правило для обоснования отсутствующего результата из отчета.

На панели «Редактор фильтров» установите значение в поле «Имя» myCodeCovFilter. Вы можете задать в поле Описание любой описательный текст. Раздел Filter Rules имеет две вкладки, модель и код. В этом случае фильтр появляется на вкладке Код, так как вы фильтруете из отчета о покрытии кода. Можно дважды щелкнуть поле Обоснование, чтобы добавить причину, например «Ожидаемый результат».

В верхней части редактора фильтров в поле «Имя файла» нажмите «Сохранить как». В окне Save filter назовите файл фильтра myCodeCovFilter. Обратите внимание, что имя фильтра и файла фильтра не должны совпадать.

При сохранении фильтра отчет о покрытии кода обновляется и отображает обоснованный результат.

Обосновать ложный случай второго условия, нажав на фильтр Добавить правило обоснования рядом с rtb_inputGElower и следуя шагам, перечисленным выше. Это второе правило добавляется к тому же файлу фильтра, который вы создали для первого правила.

Можно создать новый отчет о покрытии кода после применения фильтров покрытия, щелкнув Текущие кумулятивные данные (H) в левой области Обозревателя результатов покрытия, а затем щелкните Сгенерировать отчет в нижней части панели данных покрытия. Эта ссылка создает автономный отчет.

В сводном разделе отчета о покрытии кода отражен улучшенный охват условий из-за правил фильтрации.

Кроме того, в отчете о покрытии кода теперь показан раздел Объектов Filtered from Coverage Analysis, в котором отображаются правила фильтрации и обоснования.

Для просмотра документации необходимо авторизоваться на сайте