2012-10-03 28 views
4

我想要按照this post从命令行在iOS设备上运行UIAutomation脚本,但是我无法使其工作。使用设备上的仪器进行自动化测试

这是我目前正在使用的命令: 文书-t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate /用户/ X/Library/Developer/Xcode/DerivedData/TestiPhoneAutomation2-dyufpxsavtdqkybpagcoawdudzid/Build/Products/Debug-iphoneos/TestiPhoneAutomation2.app -e UIASCRIPT“/Users/X/Workspaces/TestiPhoneAutomation/test2.js”-e UIARESULTSPATH“/ Users/X/Workspaces/TestiPhoneAutomation2 /“-w 80bf5b ... UDID ... dfb52543 -v

它在模拟器上运行良好(用debug-iphonesimulator替换Debug-iphoneos,在这种情况下它也忽略-w),但如果我启动它使用为设备编译的应用程序它崩溃(我与r尝试elease和调试,我得到相同的结果)。

我得到的错误是:

POSIX产卵故障;放弃发射(二进制== /Users/X/Library/Developer/Xcode/DerivedData/TestiPhoneAutomation2-dyufpxsavtdqkybpagcoawdudzid/Build/Products/Debug-iphoneos/TestiPhoneAutomation2.app/TestiPhoneAutomation2)。 2012-10-03 12:10:3​​6.609乐器[76151:1603]录制取消: 至少有一个目标无法启动;中止运行仪器跟踪 错误:无法启动跟踪。

回答

3

我得到了同样的错误,但我没有运行多个Instruments工具。我通过在应用程序之前放置-w UDID参数并仅使用应用程序的名称(应用程序已部署到设备)来实现这一目标。

我使用的命令行是以下(在Xcode 4.6):

仪器-t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/内容/资源/ Automation.tracetemplate -w < DEVICE_ID> < APP_NAME> -e UIASCRIPT < path_to_script> -e UIARESULTSPATH < path_to_results>

+1

谢谢,这工作正常...,我使用相同的命令,但“-w udid”位置不同。把它放在tracetemplate之后和应用程序名称之前对我来说非常棒 –

0

请在命令行中检查UDID的顺序,实际上所有参数也仅在构建版的调试版上运行。希望这有效,因为它为我工作。

+2

你能告诉我你使用命令行的例子吗? – LiohAu

0

对于任何有这个问题的人,我会解释什么对我有用,以及我如何解决这个问题。

我做了ps命令来查看哪些进程正在运行。我发现乐器还在运行。然后,我做了killall instruments,并导致仪器过程中断。然后,我做了我的乐器指令,并在此之后完美奏效。

相关问题