2009-06-15 10 views
17

私はiPhoneテストアプリをiPhoneで自動的にテストしたいと思っています。以下は、私が持っていると思い手順です。iPhone用XCodeテスト自動化

  1. コンパイル、リンク、コードはiphoneアプリ(Xcodebuild)
  2. に署名iphone
  3. に新しく建設されたアプリケーションをアップロード自動的
  4. iphoneでアップロードアプリを実行します
  5. は、GDBコンソール
  6. から結果を収集今アプリ

を閉じて、私は私が行うことはできませんステップ2と3に問題がありますそれは自動的に(私は "ビルドとデバッグ"ボタンを介してXCodeから行うことができます。ただし、手動でクリックする必要があります)。

私はオートメーターに関するいくつかの研究を行いましたが、私の問題には答えません。私が考えている別のオプションは、アプリをiphoneシミュレータ用にコンパイルしてそこから実行することですが、実際のデバイスと比較してテスト結果がどれほど正確かはわかりません。

私はMac/IPhone開発の新人です。おそらく誰かがこれをテストする優れた方法を持っています。どんなフィードバックと入力も歓迎します。ありがとう。

答えて

5

ビルドとインストールに使用するツールは、AppleScriptです。次のようなものがあります。

tell application "Xcode" to launch 

私はこれが完全な回答ではないと思われます。まだ解決すべきことがたくさんあります。しかし、AppleScriptは私が信じるあなたの重要なツールの1つになるだろう。

+0

ポインタありがとうございます。私は、AppleScriptを使ってXcodeを起動しました。今、私は正しいプロジェクトを選択してクリックして "ビルドアンドゴー"をクリックする構文を理解する必要があります。私が何か役に立つものが出てくるまでにはかなりの時間がかかります。 – chuan

+2

「クリックビルドアンドゴー」とは思わないでください。イベントについて考える必要があります。頭の中で「クリック」すると、間違った道をたどることがよくあります。ビルドのコマンドは "ビルド"です。 Xcodeが提供するものを見るためにAppleScriptエディタの "Open Dictionary"に多くの時間を費やしたいと思うでしょう。 「最初のプロジェクトのリリース」という名前のビルド構成を使用してビルドするなどのコマンドが必要になります。 「打ち上げ」はそれを実行するものです。 「アクティブなアーキテクチャを設定する」も重要です。より困難な問題は、コンソール出力を簡単に取得する方法です。端末タイプで次のコマンドを : –

+1

コンソール出力は、この方法を行うことができます デフォルトはcom.apple.Xcode PBXGDBDebuggerLogToFile YES デフォルトは<私のGDBの出力ファイルへのパス> com.apple.Xcode PBXGDBDebuggerLogFileNameを書くこれにより 、ビルドを呼び出すpythonスクリプトを書いて、テストアプリを実行します。その後、テスト後に出力ログを取得します。 Btw、AppleScriptのポインタについてもう一度感謝します。私は今日それを試してみる。 – chuan

1

オープンしていないXcodeビルドを起動するためのコマンドラインツール "xcodebuild"があります。ターゲットなどを設定するために使用できるフラグがあります。

+0

助けてくれてありがとう。 xcodebuildはバイナリをビルドし、新しくコンパイルされたバイナリをiphoneにアップロードしません。それを機能させるために指定する必要があるフラグ/オプションがある場合、私はそれについて知りたいです。 – chuan

0

博士NICのtesting with Rubyあなたがiphoneにバイナリをアップロードするためのスクリプトを実行し、目標にビルドフェーズを追加することができ、この

0

の一部を支援できますか?

は右ターゲット、アドインをクリック>新規ビルド相 - > [新規スクリプトの実行コメントセクションが適切に解決策を表示するための良い方法を提供していない段階

16

を構築します。ここに答えの要約があります。

IPhoneアプリケーションをビルドし、AppleScriptを使用してデバッグプロセスをアップロードし、トリガーするタスクは、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> 

最後に、この問題を解決するのに役立ってくださったさまざまな方々に感謝します。UISpec http://code.google.com/p/uispec/

アウト

2

チェックは、それは完全自動化テストフレームワークは、iPhone用に開発されています。

0

xcodebuildはバイナリを作成するだけで、新しくコンパイルしたバイナリはiphoneにアップロードされません。

実際にそれが(それに署名した後)をアップロードすることができますが、あまりにも悪い実行... は、多分それは、一度ターゲットに接続されますがどのようにgdb使用して実行することができます(IP?、USBを?usbnet?)?

2

iphone_testifyをチェックしてください。これはOCUnitとGoogle Toolbox for Macでうまくいきます.UISpecのようなものに拡張できると思います。

よろしくお願いいたします。

関連する問題