使用Xcode 6从命令行调用UIAutomation测试

时间:2014-09-17 13:48:15

标签: command-line ios8 ui-automation ios-ui-automation xcode6gm

从命令行运行UIAutomation测试似乎经常在新的Xcode版本中破坏(根据过去的帖子判断)。从未使用过命令行脚本,我在2012年发现了这篇文章:Automation Instrument from the Command Line

问题:我的命令返回时没有错误,没有输出结果且没有任何记录到系统控制台。模拟器甚至没有启动!

检查一些更新路径(特别是自动跟踪仪器路径),我想出了这个命令。请注意第一个参数中的路径(它与过去的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"

通过选择" raw"这可能更容易阅读。来自gist

当然:

  • 我验证了指定给我的.app的路径实际存在;它是在成功构建并运行后形成的。
  • 我在我指定的输出文件夹(" TestResults")中验证了实际上没有记录任何内容。
  • 我验证了我指定的上述TestRunner.js文件,可以在指定的路径找到,并使用Instruments应用程序以交互方式在Automation Instrument中成功运行。
  • 我已经检查了Apple的Xcode6 / iOS8 pre-release documentation(需要登录;请参阅标题部分,"从命令行执行自动化仪器脚本"),什么都没有因为我只是针对模拟器,我跳出来是错误的。
我的怀疑
  • 我错过了一些旗帜或在某处切换。

有人想到吗?

1 个答案:

答案 0 :(得分:5)

我看到完全相同的问题,在明确提供了 -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