2012年10月1日月曜日

AndroidのJUnitテストの結果をXMLとして出力 (→ Jenkinsで表示)

Android JUnit Testって、Eclipseで実行すると進捗の表示も結果の表示も分かりやすいのだけれど、antやコマンドラインから実行したときは、ログからテスト失敗時のスタックトレースを探して対処せねばならず分かりにくいです。また、Jenkinsでテスト実行時にテスト結果を表示出来ないのはもったいないです。

そんなわけで探してみたところ、Android JUnit results in Hudson にいいコードがのっていました。podplayerのテストであるpodtestで使っています。この方法ではテスト実行時に使用するInstrumentationTestRunner を置き換えなければならないのでちょっと注意が必要です。

  1. テストプロジェクトのAndroidManifest.xml のinstrumatation要素のandroid:nameを com.neenbedankt.android.test.InstrumentationTestRunnerに置き換える
  2. antから実行する場合、ant.propertiesに test.runner=com.neenbedankt.android.test.InstrumentationTestRunner という一行を加える。
  3. Eclipseから実行する場合、以前使っていたAndroid JUnit TestのRunの設定を削除する必要がある? (Projectの設定から Run/Debug setting)
JUnitを実行すると、結果のファイルが実施したターゲット(エミュレータ/実機)のテストプロジェクトのディレクトリ (podtestだと /data/data/com.mamewo.podtest0.tests/files/ ) に保存されるので、 adb pullして、JenkinsにJUnitの結果のファイルとして設定するとテスト結果が表示されます。

1 件のコメント: