Не удается запустить UIAutomationTest из командной строки

У меня есть приложение iOS, и я хочу включить его в непрерывную интеграцию. Стратегия, которую я использую для этого, заключается в попытке запустить тесты из командной строки.

Я пытаюсь сделать это, используя следующий скрипт:

TRACETEMPLATE="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate" instruments -t $TRACETEMPLATE build/Release-iphonesimulator/MyApp.app -e UIACSCRIPT "UnitTests/SomeTest.js" 

SomeTest.js – это простой файл javascript, который я могу запустить в Instrumentation внутри Xcode, и он работает. Я создаю свое приложение, используя:

 xcodebuild -alltargets -sdk iphonesimulator5.1 

и это генерирует MyApp.app. Я могу запустить приложение из Xcode в симуляторе очень хорошо, однако, когда я пытаюсь запустить инструменты, я получаю коробку с сообщением о том, что есть неизвестная ошибка, а в командной строке она печатает:

 2012-05-15 15:32:59.928 instruments[17548:1d03] Recording cancelled : At least one target failed to launch; aborting run Instruments Trace Error : Failed to start trace. 

Может ли кто-нибудь дать мне какую-либо помощь / предложения о том, что может произойти, и как я могу это исправить?

Кроме того, он всегда открывает iPad-симулятор? Могу ли я сделать так, чтобы он открыл любой симулятор, который я хочу?

6 Solutions collect form web for “Не удается запустить UIAutomationTest из командной строки”

Я получал такую ​​же ошибку и чуть не вытащил свои волосы, пытаясь ее решить. Сообщения об ошибках абсолютно бесполезны.

То, что оказалось для меня проблемой, было файлом .app, на который я указывал. Как только я нашел «правильный» файл .app, который был глубоко похоронен в папке 5.1 Simulator, я смог наконец запустить тесты UIAutomation из командной строки с Xcode 4.3.

Путь к .app, который работал для меня:

 ~/Library/Application\ Support/iPhone\ Simulator/5.1/Applications/{string-of-numbers-and-letters}/MyApp.app/ 

Вот полная команда, которую я использую для запуска тестов UIAutomation из командной строки с Xcode 4.3:

 instruments -t /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate ~/Library/Application\ Support/iPhone\ Simulator/5.1/Applications/{string-of-numbers-and-letters}/MyApp.app/ -e UIASCRIPT /Path/To/TestFile.js 

Надеюсь, это поможет кому-то другому, поскольку документации для этого крайне не хватает.

Обновить

Обратите внимание, что с Xcode 4.5.2 расположение шаблона автоматизации изменилось с местоположения моего исходного ответа:

 /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate 

Правильное расположение /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate Automation.tracetemplate, /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate Xcode 4.5.2, – это /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate

Пути для вызова командной строки UIAutomation несколько изменились за последние пару лет. Я написал несколько сценариев оболочки bash, которые работают вместе, что может запустить тестовый файл UIAutomation таким образом, который работает с Xcode 4.4.1.

См. Эту статью: https://gist.github.com/3605692#comments

Вкратце, ключевая команда заканчивается:

instruments -t $INSTRUMENTS_TEMPLATE $APP_PATH -e UIASCRIPT $SCRIPT_PATH -e UIARESULTSPATH $RESULTS_PATH

В моих сценариях требуются переменные замены. Другое преимущество заключается в том, что приложения симулятора iOS часто меняют GUID как часть их пути. Мой скрипт найдет их, поэтому вам не придется жестко кодировать временный идентификатор GUID в своих вызовах builds / scripts / command line.

прости я плохо знаю английский. Как самый простой способ запустить этот скрипт из Teamtsity? Каждая сборка – цифры и буквы разные. Не самый простой способ:

  1. очистить тренажер до сборки
  2. найти папку с программой и содержать эти цифры и буквы, записанные в переменной.
  3. Эта переменная, например, запись сценария.

Может быть, из этих чисел можно легче взять?

Конфигурация сборки должна быть отлаживаемой, чем Release. Это и стало причиной ошибки в моем случае. Вы можете изменить конфигурацию сборки в «Редактирование схем» и выбрав вкладку «Профиль». Убедитесь, что вкладка build также находится в режиме отладки.

Я сделал команду ps чтобы посмотреть, какие процессы запущены. Я обнаружил, что инструменты все еще работают. Затем я убил killall instruments и убил инструменты. Затем я сделал команду инструментов и после этого работал отлично.

  • Ошибка использования инструмента: указанный целевой процесс недействителен:
  • Автоматизация пользовательского интерфейса за пределами собственного приложения?
  • Попытки использовать UIButton в UITableViewCell с использованием автоматизации пользовательского интерфейса завершаются неудачей с «не могут быть задействованы»,
  • UIAutomation: изменение местоположения, когда приложение находится в фоновом режиме
  • Автоматизация пользовательского интерфейса iOS. Не все элементы отображаются при выполнении logElementTree
  • Существует ли существующая библиотека для автоматизации управления пользовательским интерфейсом в IOS
  • Выбор рамок тестирования iOS
  • Как скрипт в инструменте автоматизации пользовательского интерфейса, как мне импортировать другой скрипт?
  • Как проверить имя метки в представлении таблицы с помощью инструментов iOS?
  • Вызов webservice из UIAutomation
  • Обход профиля разработки для использования инструментов на телефоне с джейлбрейком
  • Interesting Posts

    Быстрая фатальная ошибка: неожиданно найден нуль при развертывании необязательного значения uiimage

    Попытка сделать табличное представление таблицы UITableView вне границ таблицы

    Расстояние использования собственности

    AFNetworking загружает несколько файлов памяти

    Я не могу получить уведомление по данным iOS swift 3

    Изменение цвета ярлыка с помощью UITapGestureRecognizer

    Как дождаться завершения встроенной анимации UITableView?

    UITabBarItems в UITabBar show после того, как я нажимаю элемент не при запуске приложения

    перезагрузить uitableview в нижнюю ячейку

    Форматирование строки, содержащей число с разделом запятой

    Использование currentViewController из UIView

    Xcode bot установить время запроса ссылки на ссылку

    Могу ли я делать подобные параллельные вычисления на графическом процессоре?

    Получить токен OAUTH 2 из Dropbox с помощью SDK

    Как перейти от vImage_Buffer к CVPixelBufferRef

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.