4

从命令行运行 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"

从这个gist中选择“raw”可能更容易阅读。

当然:

  • 我验证了为我的 .app 指定的路径确实存在;它是在成功构建和运行后产生的。
  • 我验证了在我指定的输出文件夹(“TestResults”)中,实际上没有记录任何内容。
  • 我验证了TestRunner.js我指定的上述文件,可以在指定的路径中找到,并成功地在自动化仪器中与仪器应用程序交互地运行。
  • 我已经检查了 Apple 的 Xcode6/iOS8预发布文档(需要登录;请参阅章节标题“从命令行执行自动化仪器脚本”),没有什么不对,因为我只是针对模拟器.
我的怀疑
  • 我错过了一些标志或在某处切换。

有人想吗?

4

1 回答 1

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
于 2014-09-18T05:11:21.557 回答