Этот пример показывает, как фильтровать результаты покрытия кода в отчете о покрытии после сбора покрытия для модели в режиме «цикл» (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, в котором отображаются правила фильтрации и обоснования.