从命令行运行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。
当然:
TestRunner.js
文件,可以在指定的路径找到,并使用Instruments应用程序以交互方式在Automation Instrument中成功运行。有人想到吗?
答案 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