1

UIAutomationを使用してアプリをテストしていますが、コードカバレッジを確認したいと思います。ただし、javascriptにはプリプロセッサがないため、gcovなどはオプションではありません。誰かがこれに対する解決策を思いついたことがありますか?

4

2 に答える 2

7

Xcodeバージョン4.5以降の場合:

  1. 「テストカバレッジファイルの生成」ビルド設定を「はい」に設定します。
  2. 「InstrumentProgramFlow」ビルド設定を「Yes」に設定します。

これにより、シミュレーターでアプリケーションを実行してアプリケーションを終了するたびに、コードカバレッジファイルが生成されます。これらの2つの手順の詳細な説明は、http: //qualitycoding.org/xcode-code-coverage/の冒頭にあります。

単体テストでは、テストボタンを押してテストが完了するたびに、コードカバレッジファイルが生成されます。UIAutomationの場合は、もう少し注意が必要です。テストの終了時にアプリケーションが終了することを確認する必要があります。これを行うために私が見つけた最も簡単な方法は、マルチタスクをオフにすることです。MyAppName-Info.plistファイルにUIApplicationExitsOnSuspendを追加し、このオプションを「YES」に設定します。UI自動化テストを実行し、最後にシミュレーターのホームボタンを手動で押すか、UIATarget.localTarget()。deactivateAppForDuration()メソッドを使用してアプリを終了できます。

注:アプリにdeactivateAppForDuration()メソッドに依存するUI自動化テストがある場合、テストはコマンドの実行時に終了します。

于 2013-07-09T12:55:45.030 に答える
-3

コードカバレッジは単体テストにのみ使用されます。UIAutoamtionによって画面上の要素の数が「タッチ」されたことを確認する方法がないため、UIAutomationのコードカバレッジはありません。

于 2013-02-22T07:46:42.440 に答える