Извикване на тест на 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 файл, който посочих, може да бъде намерен на посочения път и успешно се изпълнява в Инструмента за автоматизация интерактивно с приложението Инструменти.
  • Проверих Xcode6/iOS8 на Apple документация за предварителна версия (изисква се влизане; вижте заглавието на раздела „Изпълнение на скрипт на инструмент за автоматизация от командния ред“) и нищо не ми изскача като грешно, тъй като просто насочвам към симулатора.
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
FYI – Реших да вляза изцяло и да събера 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 instruments има много шаблони, автоматизацията е само един от тях, вижте: developer.apple.com/library/mac/documentation/DeveloperTools/ и developer.apple.com/library/mac/documentation/AnalysisTools/ - person Sugre; 23.06.2015