私は、Androidアプリでテストインフラストラクチャをセットアップするために取り組んでいます。私はAndroidスタジオ、gradle、エスプレッソ、MonkeyRunner、エミュレータ、そして実際のデバイスを使用しています。私はgradlew connectedAndroidTest
を使用してAndroidTestを実行します。AndroidTestの実行中に別のプロセスを作成する方法は?
適切なテストフィクスチャを設定するには、テストが開始される前に起動され、完了後に中断されるバックグラウンドプロセスを持つことに興味があります。 gradleなどでそれを行う方法はありますか?
具体的には、私が今やっていることは、エスプレッソテストの途中でMonkeyRunnerでスクリーンキャプチャを行うことです。テストの途中でMonkeyRunnerをスピンアップするのは時間がかかるので、デーモンとして動作させるとテストのスピードを上げることができます。 (私はすべてが少し混乱していると理解していますが、最終的には、スクリーンキャプチャの比較を行う効率的な方法を探しています。この場合、MonkeyRunnerプロセスがスピンアップしてデバイスに接続します。その後、AndroidTestプロセスがスピンアップし、MonkeyRunnerプロセスにスナップショットを取得して参照と比較させるテストを実行すると、AndroidTestは同じことを行う次のテストに進みます。
別のプロセスパターンが有効になる可能性のあるその他の事柄は、外部通信やテストフィクスチャに必要なその他の事柄です。
なぜジェンキンを使ってみませんか?私はしばらくそれを使用しているし、仮想マシンを起動し、そこにテストを実行するセットアップがあります。 –
それはあなたが回転しているアンドロイドエミュレータですか?私がJenkinsに切り替えると、JenkinsはVMに乗ってエミュレータを起動するのを難しくします。任意のVMは問題ではありません – TinyTheBrontosaurus
私の経験上、エミュレータはどこにでもスピンアップするのは難しいです!!だから、私はいつも接続されたテストデバイスを使い、ジェンキンを夜間に走らせます。 –