Android Gradleプロジェクトで特定のテストセットのみを実行する方法はありますか?

StackOverflow https://stackoverflow.com//questions/23046259

質問

私はAndroid / Gradleプロジェクトを持っています。テストを実行したいときはいつでも、実行します。

./gradlew connectedInstrumentTest
.

私のプロジェクトのテストフォルダの下のすべてのテストを実行します。

マイテストフォルダには、オートメーションテストと非自動化テストがあります。私は主に遅いオートメーションテストなしで高速非自動化テストを実行することに興味があります。

特定のクラスまたは似たものなど、特定のテストセットのセットだけを実行する方法はありますか?私は基本的に私がしたいときにほんの少しのテストを実行することを選ぶことができるように、基本的にはどんな種類の分離を求めています。


サンプルプロジェクトを作成しました

Android SDKを指すようにlocal.propertiesを編集します。

次にエミュレータを起動するか、またはコンピュータに電話を接続します。その後、./gradlew connectedInstrumentTest --infoを使用してテストを実行できます。これはすべてのテストを実行します。

私が見つけることができないのは、すべてのテストではなく、あるクラスでテストを実行する方法です。

役に立ちましたか?

解決

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top