Основанные на требованиях метрики проверки позволяют вам оценить состояние и качество вашей основанной на требованиях деятельности по проверке (RBT). Можно визуализировать результаты с помощью панели мониторинга тестирования модели. Набор этих метрик может быть включен в рабочие процессы непрерывного интегрирования (CI). Непрерывный набор этих метрик помогает вам контролировать прогресс и качество проекта. Этот пример использует GitLab, чтобы разместить источник проекта, и Jenkins, чтобы создать и протестировать проект, а также архивировать результаты.
Использование проекта MATLAB
Использование тестовой обвязки Simulink Test Manager
Создайте проект GitLab для контроля исходного кода вашего проекта. Для получения дополнительной информации смотрите https://docs.gitlab.com/ee/README.html.
Установите Git Client.
Настройте рабочий процесс ветвления. Используя GitLab, из основной ветви создайте временную ветку для реализации изменений в файлы модели. Инженеры интегрирование могут использовать результаты тестирования Дженкинса, чтобы решить, объединять ли временную ветвь в основную. Для получения дополнительной информации смотрите https://git-scm.com/book/en/Git-Branching-Branching-Workflows.
В разделе Настройки > Репозиторий защитите основную ветвь путем принудительного использования запросов на слияние, когда разработчики хотят объединить свои изменения в основную ветвь.
В разделе Настройки на странице Интеграции добавьте webhook к URL-адресу своего проекта Jenkins. Этот webhook запускает задание сборки на сервере Jenkins.
Этот пример использует проект CruiseDashboardExample. Чтобы создать рабочую копию этого файла, в командной строке введите dashboardCCProjectStart.
Добавьте все файлы в проекте вместе с файлами, присоединенными к этому примеру, используя git к основной ветви. Эти скрипты используются для запуска тестов и сбора метрик.
Сбор метрик генерирует файлы, которые вы обычно не хотите сдавать на хранение в систему контроля версий. Git позволяет игнорировать файлы путем добавления фильтров к текстовому файлу с именем .gitignore, расположенному в корневой директории. Можно добавить образец файла, присоединенный к этому примеру, который будет фильтровать файлы, сгенерированные этим примером, которые не нужно добавлять в систему контроля версий. Вы можете найти больше информации о gitignore https://git-scm.com/docs/gitignore.
Инструмент непрерывного интегрирования автоматизирует создание и тестирует проект. Многие различные инструменты могут использоваться, чтобы автоматически генерировать результаты проверки на основе требований путем выполнения тех же общих шагов. В этом примере используйте Дженкинса в качестве инструмента автоматизации. Чтобы запустить пример, необходимо установить плагины GitLab и MATLAB для Jenkins.
Инструменту CI потребуется интегрирование с репозиторием системы контроля версий проекта. Это интегрирование позволяет инструменту CI прослушивать изменения и получать доступ к проекту для сборки. Jenkins предоставляет проект Freestyle, который служит типовым шаблоном для проектов, которые могут работать с любым управлением системой контроля версий (SCM). В проекте Freestyle добавьте информацию о системе контроля версий, чтобы SCM мог получить доступ к размещенному проекту.
Нажмите New Item, введите имя и выберите freestyle проект
В проекте Jenkins нажмите Configure.
На вкладке «Общие» задайте имя проекта.
На вкладке Управление исходным кодом в поле URL-адрес репозитория укажите URL-адрес репозитория GitLab.
На вкладке Триггеры сборки (Build Triggers) выберите Сборка (Build) при перемещении изменения в GitLab.
Сконфигурируйте окружение сборки, чтобы использовать установленную версию MATLAB, необходимую для проекта.
Плагин MATLAB для Jenkins позволяет интегрировать путем определения команд MATLAB, а также конфигурировать проверку в обход необходимости использования командной строки. В этом примере один шаг сборки будет использоваться, чтобы открыть проект, инициализировать инфраструктуру метрики, запустить тесты и затем собрать результаты.
Нажмите Add build step и выберите Run MATLAB Command. Введите команду
openProject(pwd);collectModelTestingResults();
runTests();
collectModelTestingResults();
Результаты метрики могут быть заархивированы во время шага сборки и затем повторно импортированы в MATLAB, когда необходимо их просмотреть. В этом примере скрипт набора результатов хранит метрические данные в derived
директория. Поскольку некоторые метрики полагаются на экспортированные результаты Simulink Test, необходимо также архивировать экспортированные .mldatx
файлы.
Чтобы архивировать результаты для последующего просмотра, сконфигурируйте систему CI для экспорта следующих файлов:
Все файлы, расположенные в <project-root>/derived
директория
Все результаты тестирования экспортированы в <project-root>/testresults/.mldatx
файлы.
В данном примере используйте предоставленное Дженкинсом действие после сборки для архивирования программных продуктов, произведенных во время сборки.
Щелкните Добавить действие после сборки и выберите Архивировать программные продукты. Введите путь derived/**,testresults/*.mldatx
для архивирования всех файлов, сохраненных в этой директории.
Наконец, для сохранения и закрытия строения необходимо нажать кнопку «Сохранить».
Теперь Jenkins сконфигурирована для выполнения нового задания сборки каждый раз, когда новые изменения в проекте были зафиксированы в репозитории GitLab. Можно также вручную запустить сборку, нажав на Build Now на странице проекта Jenkins.
Jenkins будет хранить все файлы, сгенерированные и архивированные для каждой успешной сборки, и они могут быть просмотрены индивидуально или загружены вместе в один zip-файл. Чтобы просмотреть результаты в MATLAB:
Получите версию проекта, которая использовалась для генерации результатов из системы контроля версий.
Получите результаты архивной метрики из архивированного местоположения.
Загрузите и скопируйте/извлечите derived
директория и все файлы в корневую директорию проекта.
Загрузите архивные экспортированные файлы результатов Simulink Test и также скопируйте/извлечите эти файлы.
Откройте проект в MATLAB и откройте Панель мониторинга тестирования модели. На инструментальной панели отображаются результаты, сгенерированные при сборке CI.
Если вы используете другой инструмент автоматизации, можно также использовать командную строку для проверки интегрирования. Запустите тесты и соберите метрики, запустив соответствующие команды через интерфейс командной строки вместе с использованием -batch
флаг.
Например, когда вы используете эту команду, MATLAB открывает проект, инициализирует результаты тестирования модели, запускает все тесты, собирает метрики модели и затем отключается.
matlab -c %LICENSE_PATH% -nosplash -logfile output.log -batch "openProject(pwd);collectModelTestingResults();runTests();collectModelTestingResults(); exit;"