在 2014 年的 Xcode 6.0.1 中,你会做这样的事情来在模拟器上运行 UIAutomation 测试,在 -w 开关之后命名你的模拟器:
instruments -t '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate' \
-w 'iPhone 5s' \
'/Users/sohail/Library/Developer/CoreSimulator/Devices/7232A640-A9D2-4626-A2AD-37AFFF706718/data/Containers/Bundle/Application/E71B915E-051D-4BEF-9083-34416D02EC91/RoadRunnerRadar.app' \
-e UIASCRIPT '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestRunner.js' \
-e UIARESULTSPATH '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestResults/'
如果您想在您的设备上运行它,而不是像我在上面的代码段中用于在模拟器上运行的“iPhone 5s”,您需要提供设备的 UDID。然后,您可以省略我上面给出的长应用程序路径,只提供应用程序的名称。Instruments 将能够在设备上找到它。
使用上面的示例,但针对假设设备进行了修改,如下所示:
instruments -t '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate' \
-w '8532A640-A9C2-4626-A2AD-37AFFF706799' \
'RoadRunnerRadar' \
-e UIASCRIPT '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestRunner.js' \
-e UIARESULTSPATH '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestResults/'
这未通过设备调用验证,因此请对其进行测试。参数排序有一点灵活性。
我确实有一个经过验证的UI Automation Runner脚本,它非常适用于 Xcode 6.0.1 和模拟器。