2013-03-14 4 views
4

Я пошел за этим сайтом, чтобы начать работу с UI Automation. http://blog.manbolo.com/2012/04/08/ios-automated-tests-with-uiautomation#1.2Начать инструменты из командной строки

Я пытаюсь запустить Инструменты из командной строки. К сожалению, я получаю сообщение об ошибке:

2013-03-14 14:06:36.376 instruments[17854:1207] Connection to the remote device lost while launching target. Aborting... 
2013-03-14 14:06:36.378 instruments[17854:1207] Recording cancelled : At least one target failed to launch; aborting run 
Instruments Trace Error : Failed to start trace. 

Это команда, которую я использовал:

instruments -w {deviceId} -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate {appname} -e UIASCRIPT /Path/to/Script.js

В настоящее время я использую Xcode 4.6.

+1

Установлено ли приложение на устройстве? Инструменты не устанавливаются на устройство автоматически (по крайней мере, не в это время). И у вас есть '{appname}' как параметр. Вы не можете просто указать имя. Вы должны указать полный путь к набору приложений, который создается Xcode. Инструменты используют это, чтобы узнать идентификатор пакета, чтобы он знал, какое приложение запускается на устройстве. –

+0

О, и этот скрипт в моем демо-приложении может помочь: https://github.com/jonathanpenn/ScheduleDemo/blob/master/test_run.sh –

ответ

0

Я предлагаю вам взглянуть на экран-шутер Джонатана, о котором он объясняет: http://cocoamanifest.net/articles/2013/01/ui-screen-shooter.html. Это действительно помогло мне разобраться в симуляторе, запуске инструментов из командной строки и многом другом. Как объяснил Джонатан, вам нужно сначала создать приложение, чтобы что-то запустить.

Получить его источники здесь: https://github.com/jonathanpenn/ui-screen-shooter и посмотреть, работает ли это для вас. Затем вернитесь к простому скрипту, который будет создавать приложение, размещать его в удобном месте и запускать инструменты с помощью приложения и желаемого шаблона.

+0

Страница ушла, но github остается ... – Jonny

+0

Я исправил ссылку. – Jelle

0

Это сработало для меня.

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

0

попробовать это

instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate <path to your app> -e UIASCRIPT /Users/t-rbudhbhatti/Desktop/Scripts/FT5/SearchByRoute.js -e UIARESULTSPATH /Users/t-rbudhbhatti/Desktop/Scripts/FT5/SearchByRouteResult 

вместо имени приложения, вы должны дать полный путь к приложению.

+0

Это не будет работать на устройстве, оно будет работать только для симулятора –

0

У меня была такая же проблема, я сделал следующие изменения и работал хорошо для меня:

Изменено расположение -w UDID в данной команде, поместите его после того, как путь tracetemplate и до пути приложения, т.е. это должно быть так же, как

instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate -w {deviceId} {appname} -e UIASCRIPT /Path/to/Script.js 
+0

Это игнорирует параметр -w и просто запускается на самом последнем оборудовании тренажера. –

5

в 2014 году с Xcode 6.0.1, вы могли бы сделать что-то подобное для запуска UIAutomation тестов на тренажере, называя свой тренажер после -w переключатель:

instruments -t '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate' \ 
    -w 'iPhone 5s' \ 
    '/Users/sohail/Library/Developer/CoreSimulator/Devices/7232A640-A9D2-4626-A2AD-37AFFF706718/data/Containers/Bundle/Application/E71B915E-051D-4BEF-9083-34416D02EC91/RoadRunnerRadar.app' \ 
    -e UIASCRIPT '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestRunner.js' \ 
    -e UIARESULTSPATH '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestResults/' 

Если вы хотите запустить это на своем устройстве, вместо «iPhone 5s», как в приведенном выше фрагменте для работы на симуляторе, вы должны предоставить UDID своего устройства. Затем вы можете опустить длинный путь приложения, указанный выше, и просто указать имя приложения. Инструменты смогут найти его на устройстве.

Используя мой пример сверху, но модифицированный для гипотетического устройства, это будет выглядеть так:

instruments -t '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate' \ 
    -w '8532A640-A9C2-4626-A2AD-37AFFF706799' \ 
    'RoadRunnerRadar' \ 
    -e UIASCRIPT '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestRunner.js' \ 
    -e UIARESULTSPATH '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestResults/' 

Это не проверяется с на вызов устройства, пожалуйста, проверьте его. Существует немного гибкости при упорядочивании параметров.

У меня есть проверенный сценарий UI Automation Runner, который отлично работает для Xcode 6.0.1 и симулятора.