2011-12-20 110 views
4

为了自动化测试应用程序,我想重复启动一个iOS应用程序,使用不同的参数从它的主要功能,从我的Mac;为了简单起见,我们只是说它将一个文件作为argc,并且我有100个文件需要测试。理论上,我想重现的是xcode build & run - 在设备上的行为,而不是越狱;该应用程序与硬件密切相关,因此仅靠模拟器是不够的。从Mac OS X控制台启动iOS应用程序

有几个页面可以做类似的事情,但是没有一个使用该设备,而且他们都没有详细说明控制台上的命令行实际外观如何。

1)http://blog.carbonfive.com/2011/04/06/running-xcode-4-unit-tests-from-the-command-line/

当前页设置,最终在模拟器运行的单元测试;他接着说,

“运行脚本”建立一个单元测试生成目标的阶段只是运行>我检查了,但既不是“$ {SYSTEM_DEVELOPER_DIR} /工具/ RunUnitTests”

RunPlatformUnitTests和RunUnitTests都是从Xcode 4执行的(我重命名了这些脚本以确保)。

2)http://longweekendmobile.com/2011/04/17/xcode4-running-application-tests-from-the-command-line-in-ios/

此页面拿起1)离开的地方,但只有建立在模拟器和没有指定的应用程序是如何真正启动。它很好地描述了它是如何从命令行构建的。

3)Debugging iOS app built from commandline

我在Xcode 4看到的是构建阶段,其停止在签署和验证应用程序。接下来我看到的是在设备上运行的gdb调试器。但是,我不知道如何访问调试服务器 - 我没有监禁我的iPhone,所以我无法访问它的任何内容,无论是调试服务器还是IP地址。

什么我可以确认的是,广发行是从xcode4 /平台名为/ iPhoneOS.platform因此远程调试器必须自身附加的东西,莫名其妙......

回答

2

对于命令行远程GDB(或只是上传到设备)你可以使用这个小工具,选择最接近你需要的叉子,原作者不会支持它了: https://github.com/ghughes/fruitstrap

你可能无法使用它原样(我不得不调整gdb我的使用参数),但它是一个好的开始。

您可以进一步自动化的东西,通过自动运行此脚本

for i in $(system_profiler SPUSBDataType | grep "Serial Number: " | grep -Po "[A-Za-z0-9]{40,}$") ; do 
    echo "Installing on: $i" 
    #use fruitstrap with device $i 
end 

这只会检查所有USB端口,只保留当前连接到iOS设备上的那些,并返回其UDID。

从那里你应该能够使用几个不同的参数为你的应用程序自动化测试。

相关问题