Вызов теста UIAutomation из командной строки с Xcode 6

Запуск тестов UIAutomation из командной строки, кажется, часто ломается с новыми выпусками Xcode (судя по прошлым сообщениям). Никогда не используя для этого сценарии командной строки, я нашел эту публикацию от 2012 года: Инструмент автоматизации из командной строки.

Проблема: Моя команда возвращается без ошибок, без результатов вывода и без каких-либо журналов в системной консоли. Симулятор даже не запускается!

Проверяя некоторые пути на наличие обновлений (в частности, путь инструмента трассировки автоматизации), я придумал эту команду. Обратите внимание на путь в первом параметре (он отличается от предыдущих выпусков Xcode):

instruments -t "/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate"         
"/Users/sohail/Library/Developer/CoreSimulator/Devices/7232A640-A9D2-4626-A2AD-37AFFF706718/data/Containers/Bundle/Application/D07FEC4B-76AD-4844-8362-08E771B81053/MyAppName.app"
-e UIASCRIPT  "/Users/sohail/source/MyAppName/MyAppNameAutomationTests/TestRunner.js" 
-e UIARESULTSPATH "Users/sohail/source/MyAppName/MyAppNameAutomationTests/TestResults"

Возможно, это будет проще прочитать, выбрав "необработанный" в этой сути.

Конечно:

  • Я подтвердил, что указанный путь к моему .app действительно существует; он появился на свет после успешной сборки и запуска.
  • Я подтвердил, что в моей указанной выходной папке («TestResults») на самом деле ничего не регистрируется.
  • Я подтвердил, что указанный выше TestRunner.js файл может быть найден по указанному пути и успешно работает в Automation Instrument в интерактивном режиме с приложением Instruments.
  • Я проверил Apple Xcode6 / iOS8 предварительная документация (требуется вход в систему; см. Заголовок раздела« Выполнение сценария инструмента автоматизации из командной строки »), и у меня ничего не выскакивает, как неправильно, так как я просто ориентируюсь на симулятор.
My suspicion
  • Мне где-то не хватает флага или переключателя.

Кто-нибудь думает?


person idStar    schedule 17.09.2014    source источник


Ответы (1)


Я заметил ту же проблему, после того как я явно указал параметр -w $ DEVICE, мои тесты, наконец, начались

instruments -t /Applications/Xcode6.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate 
-w "iPhone 5s (8.0 Simulator)" /path/to/my/TestApp.app -e UIASCRIPT /tmp/script.js -e UIARESULTSPATH /tmp
person Sugre    schedule 18.09.2014
comment
Вот и все! В прошлой документации говорилось, что это необязательно, но теперь мы знаем, что флаг -w является обязательным. - person idStar; 18.09.2014
comment
К вашему сведению - я решил пойти ва-банк и собрать сценарий bash для запуска этой команды и сделать это разумно, динамически находя соответствующие пути к симуляторам и приложениям, которые часто меняются: github.com/idStar/ui-automation-runner - person idStar; 20.09.2014
comment
Были ли у вас проблемы с использованием этого на физическом устройстве? - person RyanJM; 26.11.2014
comment
Что на самом деле представляет собой шаблон? Что оно делает? -t /Applications/Xcode6.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate - person Empario; 23.06.2015
comment
Инструменты @Empario имеют много шаблонов, автоматизация - только один из них, см. developer.apple.com/library/mac/documentation/DeveloperTools/ и developer.apple.com/library/mac/documentation/AnalysisTools/ - person Sugre; 23.06.2015