Одна из замечательных особенностей Github Actions заключается в том, насколько легко вы можете настроить непрерывное интеграционное тестирование для ваших приложений флаттера. В этом посте мы рассмотрим базовую реализацию рабочего процесса CI во флаттере.
Шаг 1. Создайте несколько тестов
Очевидно, что первым шагом в тестировании CI является написание нескольких тестов! Написание реальных тестов сильно зависит от предметной области и выходит за рамки этой статьи, но вы можете ознакомиться с документацией, чтобы узнать, как это работает. Или, если вы заинтересованы в использовании новой библиотеки Integration_test, вы можете посмотреть наш пост об этом здесь.
А пока давайте предположим, что вы используете устаревший тестер виджетов (не Integration_test). У вас должен быть хотя бы один файл в папке /test с суффиксом _test.dart, который выглядит примерно так:
Подготовив тесты, вы готовы настроить рабочий процесс CI.
Шаг 2. Создайте файл .yaml для настройки рабочего процесса.
В своем репозитории создайте файл внутри .github/workflows с именемtests.yaml со следующим:
Некоторые примечания к приведенному выше сценарию:
- Флаг push настраивает этот рабочий процесс для запуска каждый раз, когда вы отправляете в репозиторий. workflow_dispatch показывает кнопку на github.com, которая позволяет запускать его вручную.
- Run-on: ubuntu-latest запускает тесты на Linux, что является самым дешевым вариантом (это действительно имеет значение только в том случае, если ваш репозиторий является частным).
- Команда flutter test запускает все файлы с именем _test в папке /test.
Как только этот файл будет добавлен, он должен начать работать немедленно. Перейдите на вкладку «Действия» на github.com, чтобы просмотреть ход выполнения:
Через пару минут ваш тест должен быть завершен!
Шаг 3. Отметьте результаты значком
Последний шаг — четко показать, прошли ли ваши тесты или нет. Один из способов сделать это — встроить значки рабочего процесса в верхнюю часть файла README.md:
Чтобы добавить значок, просто добавьте следующее в начало файла readme:
Обратите внимание, что поле test-my-app в ссылке на значок соответствует полю name: test-my-app в самом файле рабочего процесса, благодаря чему значок узнает, к какому тесту он привязан. Имя файла .yaml не имеет значения.
При этом у вас должен быть работающий рабочий процесс тестирования CI. Поздравляю!
Использование пакета Integration_testing
Использование новой библиотеки Integration_test немного сложно, так как для нее требуется целевое устройство, но в настоящее время она нестабильна для Linux или веб-целей.
Тестирование с Android или ios требует симуляторов, которые требуют больше усилий для настройки и медленного выполнения. Windows и macOs являются жизнеспособными вариантами, но минуты сборки macOs в два раза дороже, чем Windows. Основываясь на всем этом, мы пришли к выводу, что тестирование Windows — лучший вариант на данный момент.
Для тестирования с рабочим столом Windows необходимо внести несколько изменений в файл рабочего процесса:
- измените целевую систему сборки на Windows-Latest
- запустите конфиг — команда enable-windows-desktop
- добавить флаг -d windows
- передать местоположение вашего тестового файла
Готово! Теперь ваши тесты будут запускаться при каждом нажатии. Удачного кодирования!
Первоначально опубликовано на https://www.epicprogrammer.com.