История:
У нас есть сотни устройств с пользовательским интерфейсом и юнит-тестами.Тесты написаны с использованием фреймворка XCTest и выполняются как на наших приложениях, так и на системных (Safari / Настройки) и сторонних.
В рамках инфраструктуры тестирования нам необходимо привести устройства в определенное состояние.перед запуском каждого теста.Это включает в себя очистку кешей, изменение элементов настройки, установку приложений и т. Д. В настоящее время мы используем комбинацию Apple Configurator, MDM, профилей конфигурации и тестов пользовательского интерфейса, чтобы перейти в нужное состояние для каждого теста.
Проблема:
Пока все хорошо, но процесс настройки всего на самом деле дорогостоящий, нестабильный и трудно поддерживаемый в разных версиях iOS.
Идея:
Тогда мы подумали - почему бы не использовать резервные копии?Мы можем сохранить резервную копию для каждого желаемого начального состояния, восстановить требуемую резервную копию и сразу запустить тест.
НО ...
В этой идее есть одна маленькая проблема- восстановление из резервной копии переводит устройство в состояние «Настройка», где требуется вмешательство пользователя вручную.Даже если мы используем Apple Configurator, чтобы завоевать доверие устройства, настроить WiFi и пропустить все возможные элементы настройки, пользователь все равно должен нажать кнопку «Домой» один раз на странице «Hello», а затем нажать «Get Started» на экране, чтобыдоберитесь до SpringBoard и сможете запускать или отлаживать XCTest / приложения.
Вопрос:
Теперь очевидно: можем ли мы каким-то образом автоматизировать весь поток, описанный выше?То есть - восстановить устройство iOS из резервной копии, пропустить настройку и запустить XCTests.