UIAutomationを使用してアプリをテストしていますが、コードカバレッジを確認したいと思います。ただし、javascriptにはプリプロセッサがないため、gcovなどはオプションではありません。誰かがこれに対する解決策を思いついたことがありますか?
2 に答える
Xcodeバージョン4.5以降の場合:
- 「テストカバレッジファイルの生成」ビルド設定を「はい」に設定します。
- 「InstrumentProgramFlow」ビルド設定を「Yes」に設定します。
これにより、シミュレーターでアプリケーションを実行してアプリケーションを終了するたびに、コードカバレッジファイルが生成されます。これらの2つの手順の詳細な説明は、http: //qualitycoding.org/xcode-code-coverage/の冒頭にあります。
単体テストでは、テストボタンを押してテストが完了するたびに、コードカバレッジファイルが生成されます。UIAutomationの場合は、もう少し注意が必要です。テストの終了時にアプリケーションが終了することを確認する必要があります。これを行うために私が見つけた最も簡単な方法は、マルチタスクをオフにすることです。MyAppName-Info.plistファイルにUIApplicationExitsOnSuspendを追加し、このオプションを「YES」に設定します。UI自動化テストを実行し、最後にシミュレーターのホームボタンを手動で押すか、UIATarget.localTarget()。deactivateAppForDuration()メソッドを使用してアプリを終了できます。
注:アプリにdeactivateAppForDuration()メソッドに依存するUI自動化テストがある場合、テストはコマンドの実行時に終了します。
コードカバレッジは単体テストにのみ使用されます。UIAutoamtionによって画面上の要素の数が「タッチ」されたことを確認する方法がないため、UIAutomationのコードカバレッジはありません。