Amazon Device Farmに関して、実際に色々触ってみての感想。
既存のinstrumentsのテストやEspressoを実施、はたまたAPI経由で操作した時の感想です。(APIはできる、ところまで確認したというのが正しいですが。時間あったらAPIは試す。)
即時性の求められるテスト実行には少し向かないけれど、案外段階かもしれない。
Androidのinstrumentsによるテストの実施
JUni4の記述を自動でテスト対象と認識させるには以下が必要。JUnit4ベースになって test の接頭辞をつけなくなって良かったのだけれど、ここに来て必要になるとは…
- テストクラス名に
*Testと、Testの接尾辞をつける - テストクラス内のテストケース名に
test*と接頭辞をつける
他は特に問題なさそう。 @RunWith(Theories.class) と @DataPoints におけるパラメータ化テストだったり、 @Before/@Afterはともにできました。また、Espressoのテストも無事実施することができました。
この28件の成功の中には、EspressoやParametarized Testも含まれている状態です。
- 参考:
- アップデートするAPKの生成
$ ./gradlew assembleDebug$ ./gradlew assembleDebugAndroidTest
APIによるアップデート、テスト実施の自動化
AmazonのRubyライブラリにすでに統合されていた。
なので、特に問題なくテスト対象のapkをアップロード、instrumentsのテストを実施、結果を得るという一連の流れをRubyスクリプトでサクッと実現できそうでした。
ドキュメントはこちら。中身見ると、JSONで設定ファイル作れば十分な感じがしますね。
重要なところは、
#create_upload(options = {})- ここで、テストのconfiguration設定時には
type:にINSTRUMENTATION_TEST_PACKAGEを指定する
- ここで、テストのconfiguration設定時には
#schedule_run(options = {})- 実際にテストを実施する
ほか、いくつか端末の設定も含まれているのでいくつか通信が必要そう。
締め
色々段階っぽいですが、現状の結論としては以下ぽい。
(私のコメント箇所は、最終的にクラス名にTest加えたり、テスト対象だけtestつけるとかしたら解決できました。)

