Автотесты на GitHub

В ваших репозиториях настроены автотесты для проверки, что код в состоянии собраться и собранный исполняемый файл отрабатывает верно.

Мотивация запуска для вас: увидеть до защиты, сколько баллов по критерию "Тесты" вы получите в лабораторной работе. На защите проверяющие будут запускать сдаваемый код и забирать баллы за Тесты прямо из логов тестирования.

triangle-exclamation

Запуск авто-тестирования

Существует два основных метода запуска тестов. Через веб-интерфейс (сайт) и через консоль.

Веб-интерфейс

В репозиториях курса можно запускать все тесты сразу.

Для этого нужно:

  1. Загрузить в репозиторий курса файлы с исходным кодом.

  2. Перейдите в ваш репозиторий. В раздел Actions. Выбрать workflow CI/CD. В меню запуска Run workflow нажать зелёную кнопку Run workflow.

    GitHub Actions Run Workflow
  3. Дождитесь окончания запуска. Новый запуск (run) появляется в списке запусков с некоторой задержкой (до 10 секунд), так что наберитесь терпения или обновите страницу.

  4. Ознакомьтесь с результатами запуска. Перейдите в последний запущенный run (самый первый в списке). Если всё прошло успешно, то в Summary запуска вы увидите наиполезнейшую информацию:

    GitHub Actions Summary

Консоль

Запускать автотесты можно с использованием GitHub APIarrow-up-right

Проверка статуса: gh run list --workflow=classroom.yaml

Просмотр прогресса: gh run watch -i 1

Подробнее: https://cli.github.com/manual/gh_runarrow-up-right

Ход тестирования

Здесь будет рассматриваться только веб-интерфейс. Все логи отображаются в Summary. Не нужно лезть в консольные логи.

Запуск состоит из 3 частей: проверка кода на форматирование (buildtest/Code formatting test), сборка и тестирование (buildtest/stage2_buildtest) и формирование отчёта по данному запуску run (buildtest/SUMMARY). Без прохождения первого не будет запуска второго.

GitHub Actions Workflow start

Проверка на форматирование clang-format

В первом блоке проверяется соответствие приложенному clang-format файлу.

В случае несоответствия формату в Summary будет отображаться в каких файлах и какие несоответствия обнаружены:

GitHub Actions Workflow code formatting check fail

Подробный лог данного этапа в логах запуска:

GitHub Actions Workflow code formatting check fail logs

Сборка и тестирование

Сборка и запуск с санитайзерами и без в разных конфигурациях под несколькими компиляторами и системами.

Набор тестов одинаков для всех запусков на всех конфигурациях.

Чтобы посмотреть логи сборки, нужно перейти в этап buildtest/stage2_buildtest, найти соответствующую подзадачу Testing <ОС>/<компилятор> (<настройка сборки> configuration) и найти там пункт Build solutioin:

GitHub Actions Workflow build logs

Формирование отчёта по данному запуску

В Summary запуска после окончания данного этапа будет отображаться следующая информация:

  • в первую очередь отображаются баллы за тесты ("Финальный результат по тестированию");

  • затем приведена таблица по конфигурациям с легендой.

GitHub Actions Workflow SUMMARY

Last updated