2009-06-15 54 views
17

我想我的iPhone测试应用程序在iPhone中自动测试。以下是我想有以下步骤:XCode测试自动化对于iPhone

  1. 编译,链接和代码签名的iPhone应用程序(xcodebuild联编)
  2. 上传新建应用到iPhone
  3. 在iphone自动运行上传的应用
  4. 收集结果从gdb的控制台
  5. 关闭应用程序

现在,我有步骤2和步骤3,我不能做的问题它会自动执行(我可以通过“构建和调试”按钮从XCode执行此操作。但是,这需要手动点击)。

我做了一些关于automator的研究,它没有回答我的问题。我正在考虑的另一个选项是让应用程序为iPhone模拟器编译并从那里运行,但我不确定测试结果与真实设备相比有多准确。

我是Mac/iPhone开发新手,也许有人有更好的方法来测试这个。欢迎任何反馈和意见。谢谢。

回答

5

您可能想要用于构建和安装的工具是Applescript。喜欢的东西:

tell application "Xcode" to launch 

我不会假装,这是一个完整的答案;还有很多事情需要解决。但是,Applescript将成为我相信的关键工具之一。

+0

感谢您的指针。我设法使用applescript启动XCode。现在,我必须弄清楚什么是语法点击选择正确的项目,然后点击“建立并去”。在我拿出任何有用的东西之前,这将是相当长的一段时间。 – chuan 2009-06-16 12:27:49

+2

不要认为它是“点击构建并去。”你需要考虑事件。如果你在脑海中点击“咔哒”一声,你往往会走错路。构建命令是“构建”。您需要花费大量的时间在Applescript编辑器的“Open Dictionary”中查看Xcode提供的内容。您将需要像'使用构建配置构建名为“第一个项目”Release“的命令。 '发射'是什么将运行它。 '设置主动架构'也可能很重要。更难的问题是如何轻松获得控制台输出。 – 2009-06-16 14:42:27

1

您可以调用命令行工具“xcodebuild”来启动XCode构建,而不打开它。有可用于设置目标等的标志。

0

帮助您能构建阶段添加到运行一个脚本来上传二进制文件到iPhone的目标是什么?

右键单击目标,添加 - >新建设相位>新运行脚本生成阶段

16

注释部分不提供正确的解决方案展示的好方法。这是答案的总结。

构建IPhone应用程序,上传和触发IPhone上的调试过程的任务是通过AppleScript完成的。这里是AppleScript的的样子:

tell application "Xcode" 
    open "Users:chuan:Desktop:iphone_manual_client:iphone_manual_client.xcodeproj" 
    tell project "iphone_manual_client" 
     clean 
     build 
     (* for some reasons, debug will hang even the debug process has completed. 
      The try block is created to suppress the AppleEvent timeout error 
     *) 
     try 
      debug 
     end try 
    end tell 
    quit 
end tell 

的AppleScript接受“:”而不是“/”文件和文件夹的分隔符。

通过设置GDB选项将其写入文件,可以捕获GDB控制台输出。这是通过在终端中键入以下命令完成的:

defaults write com.apple.Xcode PBXGDBDebuggerLogToFile YES 
defaults write com.apple.Xcode PBXGDBDebuggerLogFileName <path to my gdb output file> 

最后,非常感谢各种帮助解决此问题的ppl。

0

xcodebuild只会建立二进制文件,它不会将新编译的二进制文件上传到iphone。

实际上它可以(在上面签名)上传,但不能跑太糟糕了...... 也许可以用gdb一旦连接到目标,但如何运行(IP?USB?usbnet?)?

2

检查出iphone_testify,它适用于OCUnit和Google Toolbox For Mac,我认为可以将它扩展到像UISpec这样的东西。

Regards