Mac, автоматическое тестирование iOS из терминала с использованием tools.app

Я запускаю тест iOS UIAutomation из командной строки, используя следующую команду:

instruments -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate /Users/ctester/Library/Developer/Xcode/DerivedData/TestView-acwgjlejvnjkqietyevgfnsjngpd/Build/Products/Debug-iphonesimulator/TestView.app -e UIASCRIPT ta.js -e UIARESULTSPATH .

TestView.app успешно запущен в симуляторе, однако скрипт не запускается.

Я попытался указать несуществующий скрипт, об ошибке не сообщается. Поэтому я думаю, что аргумент -e UIASCRIPT ta.js ... игнорируется.

Версия команды instruments на моем ноутбуке:

instruments, version 1.0
usage: instruments [-t template] [-D document] [-l timeLimit] [-i #] [-w device] [[-p pid] | [application [-e variable value] [argument ...]]]

это имеет значение?

TestView.app и ta.js отлично работают в tools.app(GUI).

Спасибо.


person user435657    schedule 16.11.2011    source источник


Ответы (1)


Есть несколько вещей, которые инструменты любят меньше, чем пробелы в путях. Если у вас ДЕЙСТВИТЕЛЬНО есть пробелы на любом из ваших путей, избегайте их. Использование кавычек не работает надежно. Хотя инструменты могут запускаться, позже в процессе запуска они захлебываются пробелами.

Дайте инструментам абсолютный путь к ta.js и избегайте его. Пример:

find ${PWD} -name ta.js -exec echo {} \; | sed 's/ /\\ /g'

Бит sed ускользает от пути вашего найденного ta.js.

Вы можете попробовать: instruments -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate /Users/ctester/Library/Developer/Xcode/DerivedData/TestView-acwgjlejvnjkqietyevgfnsjngpd/Build/Products/Debug-iphonesimulator/TestView.app -e UIASCRIPT ``find ${PWD} -name ta.js -exec echo {} \; | sed 's/ /\\ /g'`` -e UIARESULTSPATH .

Но замените двойные обратные галочки на одинарные обратные галочки. ` является зарезервированным символом в форматировании SO :(

person quellish    schedule 22.11.2011
comment
Я всегда осторожен с пробелами, и абсолютный путь все равно не помогает. Вы когда-нибудь пробовали это? Скрипт запустился в вашем случае? - person user435657; 22.11.2011
comment
Да, приведенный выше рабочий код. Видите ли вы какие-либо ошибки при запуске инструментов в подробном режиме из командной строки? - person quellish; 05.12.2011
comment
вместо этого взломать; процитируйте свое расширение правильно. $(find $PWD -name ta.js) (к ​​тому же, почему вы добавили -exec echo {} \;?) - person lhunath; 24.11.2012