私たちのAndroidアプリは自動テストが必要で、私たちのグループはRobotiumを使ってそれを処理しています。これは単体テストでは問題ありませんが、バックエンドサーバーでもクライアントを実行するための一連のエンドツーエンド統合テストを作成しています。私はこれを行ういくつかのテストを持っていますが、可能であれば、単体テストとは別にそれらを分解して、私たちの継続的な統合ビルドでは、実行するためにライブサーバーを実行する必要はありません。新しいGradle Build Systemを使用してAndroidで統合テストを行う方法は?
私たちは光沢のある新しいGradleビルドシステムを使用しています。テスト専用のフレーバーや親APKに依存するサブプロジェクトのようなことができるかどうかは疑問です。私は、ソースレスデバッグAPKをテストするためにRobotium命令を使用して、別のプロジェクトでこの作業を行いましたが、うまくいきませんでした。たぶん私はエミュレータではなく、実際のハードウェア上にあったからです。ハードウェアアクセラレーションがインストールされていても、私はエミュレータに不運がありました。
アドバイスがありますか、またはビルド中に統合サーバーを使用する必要があるビルドで息を止めてロールアウトするだけでよいですか?
私はそれが働いている。私が欲しいのは、サーバ依存の統合テストをサーバーに依存しないテストから分離して、Jenkinsが動作するプロダクトサーバを必要としないようにする方法です。 – Argyle
ああ、そうです。その場合は 'integrationTest'という名前の' build.gradle'にカスタムソースセットを作成します。依存関係クロージャで、 'compileIntegrationTest'を利用できるようになります。そこでは、ロボティクスを追加することができます。これらの統合テストを実行するタスクを追加します。カスタムソースセットを指定することによって 'gradle build'はデフォルトでそれらを実行しません。それらを実行するには、カスタムタスクを追加する必要があります。私はいくつかのソースで私の答えを修正します。 – Joe
これは 'instrumentTestCompile'ではありませんか? –