2016-10-18 5 views
12

Я хочу зарегистрировать Touch ID в iOS Simulator из командной строки, чтобы я мог запускать некоторые автоматические тесты пользовательского интерфейса вокруг авторизации.Как я могу зарегистрировать идентификатор Touch в симуляторе из командной строки?

Я попробовал несколько вещей, которые не работали:

  • xcrun simctl не имеет сенсорный вариант ID
  • AppleScript для управления меню не работает, потому что osascript не имеют разрешения доступности (и я не люблю this invasive workaround)
  • Я попытался редактирования PLIST симулятора перед запуском, но не смогли найти подходящую пару ключей значение

Если это имеет значение, я использую Фрэнка и Огурца для тестов.

+6

Довольно уверены, что у компьютеров нет больших пальцев, чувак. –

+1

Вы все еще можете использовать 'osascript' для запуска AppleScript без неприятных хаков. Откройте Системные настройки и перейдите на вкладку Безопасность и конфиденциальность -> Конфиденциальность. Теперь добавьте Terminal (или любое другое приложение, которое вы используете для запуска скрипта) в список приложений в разделе «Разрешить приложениям ниже управлять вашим компьютером». – Artal

+0

@Artal Это был бы приемлемый ответ, если вы можете показать, как это сделать с помощью командной строки (например, с помощью инструмента, подобного Ansible). –

ответ

2

Насколько я знаю, нет никакого способа активировать это на симуляторе.

Как правило, чтобы проверить что-то вроде этого, я подделываю обратный вызов из компонента Apple или всплываю предупреждение, если нет ожидаемого обратного вызова (например, при вызове openURL:, я открою вид предупреждения с URL-адресом, который должен быть открытыми для проверки правильности того, что будет открыта при открытии этого URL-адреса) во время тестирования.

Он чувствует себя любезным, но, по крайней мере, говорит мне, что если компонент Apple даст мне ожидаемый обратный вызов, мое приложение примет ожидаемое действие.

Как вы узнаете, тестирует ли он? Ну, у вас есть пара вариантов.

У Jon Reid есть хорошее сообщение о том, как узнать, тестируете ли вы во время работы здесь: http://qualitycoding.org/app-delegate-for-tests/ - хотя он использует его для отключения делегата приложения, я использовал подобный метод, чтобы проверить, действительно ли приложение испытывать или нет.

Я не уверен на 100%, что эта техника будет работать с Огурцом и Фрэнком, поскольку я не знаю, работают ли они в том же процессе, что и тесты. Для вещей, которые не работают в том же процессе, что и тесты (например, тесты XCUI), я передал аргументы ProcessInfo, когда приложение запускается, чтобы он знал, что искать. Боль в заднице, и опять же, взломанная, но она, похоже, работает.