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 -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和模拟器非常有效。
是安装在设备上的应用程序?仪器不会自动安装在设备上(至少现在不会)。你有'{appname}'作为参数。你不能只指定名称。您必须指定由Xcode构建的应用程序包的完整路径。 Instruments使用它来找出包标识符,以便知道要在设备上启动的应用程序。 – 2013-03-14 18:58:46
哦,这个脚本在我的演示应用程序可能会有所帮助:https://github.com/jonathanpenn/ScheduleDemo/blob/master/test_run.sh – 2013-03-14 18:59:05