テストケースは、まぁ書けるとして、どうやってテストを実行するんだ? ってところで詰まったので、調べてみました。
androidにおけるUnitテストの資料
2008/12/28現在では以下のような状況でした。
- googleのAPIドキュメントで見つけたのはこんな感じ。
- でも、テスト実行の方法はちゃんと書いてない。
- ググっても日本語ではあまり情報が出てこなかった。(情報が断片的すぎてよくわからない)
- androidの本家MLで同様の質問が出ていましたので、英語読める方はまずはこれを読んでもらうのが良いと思います。
- このスレッドのまとめチュートリアル。現時点では一番まとまってます。
- テストケースのサンプルとして、展開したAndroidSDKの中にSDK_HOME/samples/ApiDemos/tests/というディレクトリがあり、この中にApiDemo用のテストケース(の一部)が納められています。これで流れを掴むのがよいかも。
で、日本語でまとめるとどーよ?
ざっくりまとめるので、詳しくは上記資料を読んでね。
- まずはApiDemosのテストケースよんどけ
- テストケースも1つの独立したプロジェクトとしてapkファイルを作ってエミュレータなどに転送する必要がある。要はテスト対象と、テスト本体で2つのプロジェクトを作る必要がある。
- activityとかservice用のテストケースが用意されているので、それを使うと結構幸せになれる。このへん参照android.test.InstrumentationTestRunner - Android
- テスト用のAndroidManifest.xmlが必要。書き方はApiDemos/testsのやつを参照
- テストの実行は、エミュレータからならDevToolsというアプリのInstrumentationから好きなテストを選べば実行できる。
- このDevTools→Instrumentationの中には既に何個かテストが入っているので、どんなことが出来るか実行してみると良いかも
- コマンドラインから$ adb shell am instrument -w com.example.android.apis.tests/android.test.InstrumentationTestRunnerなどとしても起動できる。これにはオプションがいっぱいあるのでandroid.test.InstrumentationTestRunner - Android参照
- テスト結果は$ adb logcatまたはamコマンドでの出力値として返される
- INSTRUMENTATION_FAILEDとか言われる場合は、エミュレータ内でテスト用パッケージを認識できているか、$ adb shell pm list packagesを使って確認すると良いかも
0 件のコメント:
コメントを投稿