Android Gradleプロジェクトで特定のテストセットのみを実行する方法はありますか?
-
21-12-2019 - |
質問
私はAndroid / Gradleプロジェクトを持っています。テストを実行したいときはいつでも、実行します。
./gradlew connectedInstrumentTest
.
私のプロジェクトのテストフォルダの下のすべてのテストを実行します。
マイテストフォルダには、オートメーションテストと非自動化テストがあります。私は主に遅いオートメーションテストなしで高速非自動化テストを実行することに興味があります。
特定のクラスまたは似たものなど、特定のテストセットのセットだけを実行する方法はありますか?私は基本的に私がしたいときにほんの少しのテストを実行することを選ぶことができるように、基本的にはどんな種類の分離を求めています。
解決
Android Gradleプラグイン1.3.0
バージョン1.3.0から始める(最後に!)Android GradleプラグインがInstrumentationTestRunner
に渡されなければならない引数を指定します。
例えば、@SmallTest
で注釈付きテストのみを実行して他のものを無視したい場合:
android {
//....
defaultConfig {
//....
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArgument "size", "small"
}
}
.
古い回避策
プラグインの前に1.3.0がそれをすることは不可能ですが、私は少しの対処方法を見つけました。基本的に@SmallTest
注釈と注釈を付けて、高速テストとInstrumentationTestRunner
のカスタムサブクラスを使用して、スイート全体ではなく走行できない。
このGIST 。
を見つけることができます。他のヒント
はい、こちら。Androidプロジェクトでも機能する必要があります。残念ながら、私がランジングシングルメソッドを実行する方法はありません - あなたは全体のスーツのみに制限することができます。
テストスーツをデバイスにインストールしてADBを介して手動で実行することもできます。 Android Docs