使用instruments.app从终端进行Mac,iOS自动化测试

时间:2011-11-16 06:50:41

标签: macos ios-ui-automation xcode-instruments

我正在使用以下命令从命令行运行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.appta.js在instruments.app(GUI)中运行良好。

感谢。

1 个答案:

答案 0 :(得分:0)

很少有东西比道路上的空间更少。如果你的任何一条路径都有空位,那就逃避吧。使用引号不能可靠地工作。虽然仪器可能会启动,但它会在启动过程的后期窒息。

给乐器一个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格式的保留字符:(