适用于iPhone的XCode测试自动化

chu*_*uan 17 iphone testing

我想让我的iphone测试应用程序在iPhone中自动测试.以下是我想要的步骤:

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

现在,我遇到了第2步和第3步的问题,我无法自动完成(我可以通过"构建和调试"按钮从XCode执行此操作.但是,这需要手动点击).

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

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

chu*_*uan 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
Run Code Online (Sandbox Code Playgroud)

对于文件和文件夹分隔符,AppleScript接受":"而不是"/".

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

defaults write com.apple.Xcode PBXGDBDebuggerLogToFile YES 
defaults write com.apple.Xcode PBXGDBDebuggerLogFileName <path to my gdb output file>
Run Code Online (Sandbox Code Playgroud)

最后,非常感谢各位帮助解决这个问题的人.


Rob*_*ier 5

您可能想要用于构建和安装的工具是Applescript.就像是:

tell application "Xcode" to launch
Run Code Online (Sandbox Code Playgroud)

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

  • 不要把它想象成"点击构建然后去".你需要考虑这些事件.如果你的头脑中有"咔哒"声,那么你经常走错路.构建命令是"build".您需要花费大量时间在Applescript Editor的"开放词典"中查看Xcode提供的内容.你会想要'使用名为"Release"的第一个项目的构建配置构建'."启动"是运行它的原因.'设置主动架构'也许很重要.更难的问题是如何轻松获得控制台输出. (2认同)