08
Пятый этап: примите решение после повторного прогона
Когда базовый запуск и сохранение результата работают, повторите проверку на том же изменении проекта. Затем сопоставьте два прогона: совпадают ли схема и цель, выполняется ли ожидаемый набор тестов, одинаково ли фиксируется статус и доступны ли результаты после завершения. Такая проверка выявляет проблемы, которые не видны в единичном успешном запуске, например зависимость от ручной настройки сессии или потерю файлов после неуспеха.
Для приёмки используйте условия, а не общее впечатление:
- Подключайте задачу к CI, если повторный запуск не требует ручного выбора Xcode или Simulator, а тестовый результат и журнал доступны для проверки.
- Оставьте узел в режиме испытания, если тесты проходят, но сбор артефактов, повторяемость или восстановление после сбоя ещё не проверены.
- Измените план тестирования, если проекту необходимы проверки на физическом устройстве: Simulator не подтверждает их выполнение.
Если проект требует проверки поведения приложения на конкретном устройстве, добавьте её как отдельную приёмку. Документация Apple о запуске на симулируемых и физических устройствах помогает обозначить границу, но конкретный набор устройств и критерии должны определяться требованиями самого приложения.
Перед постоянной эксплуатацией проверьте также восстановление после перезапуска или сбоя узла. Необходимо выяснить, откуда CI получает исходный код, как повторно подготавливаются зависимости и куда попадают файлы результата. Если после восстановления команда начинает работать только после ручного входа или открытия Xcode, это пока не автономная задача CI.
В итоге fastlane scan полезен как единый вход для тестов проекта, если Mac, Xcode, схема и цель Simulator настроены явно, а результаты сохраняются и после неуспешного задания. Для самого первого подтверждения достаточно одного реального тестового набора и повторного прогона; расширять процесс на весь CI следует после проверки получения артефактов и восстановления узла.
Если сейчас тесты выполняются на перегруженном локальном Mac, вы ограничены доступностью этой машины и её текущей конфигурацией; если используется Linux-сервер, он не предоставляет требуемую macOS-среду для запуска Xcode-тестов. Покупка отдельного Mac решает вопрос владения, но оставляет команде расходы на устройство и его обслуживание. Чтобы предварительно ознакомиться с вариантами удалённого доступа к Mac, можно изучить описание сервиса VNCMac; для временной проверки или запуска тестового узла аренда Mac у VNCMac может быть уместна после пробного прогона. Сначала подтвердите на своём проекте доступность нужного инструментария и получение результатов, затем сопоставьте задачу с вариантами аренды Mac. Если тесты нужны непрерывно и команда готова самостоятельно поддерживать постоянный узел, сравните аренду с покупкой; если же требуется физический доступ к устройству или длительная стабильная нагрузка, выбирайте схему, которая действительно покрывает эти требования.