Gradle を使用して特定の Android インストルメンテーション ユニット テストを実行する方法はありますか? 私はもう試した
gradle -Dtest.single=UnitTestName connectedInstrumentTest
しかし、パッケージ内のすべてのテストを実行しているようです。
Gradle を使用して特定の Android インストルメンテーション ユニット テストを実行する方法はありますか? 私はもう試した
gradle -Dtest.single=UnitTestName connectedInstrumentTest
しかし、パッケージ内のすべてのテストを実行しているようです。
の使用test.single
は非推奨のようです。これを行う新しい正しい方法は
./gradlew :<module>:test --tests <pattern>
どこ<pattern>
に次のようなものがあります:
com.example.MyTest
com.example.MyTest のすべてのテスト メソッドを実行するには*MyTest
名前が MyTest で終わるすべてのクラスのすべてのメソッドに一致する*.MyTest.myMethod
任意のパッケージのクラス MyTest で特定のテスト メソッドを実行するtest
マルチプロジェクト ビルドの場合は、タスクの前に必ずモジュール パスを指定してください。そうしないと、すべてのサブプロジェクトでテスト パターンを検索するときに、誤解を招くエラー メッセージが表示されます。
これは、私が見つけたGradleサイトのどこにも文書化されていません。
これは、次のものを使用している場合に機能しますinstrumentationTestRunner
。
./gradlew test -Pandroid.testInstrumentationRunnerArguments.class=<pkg>.YourClassName
gradle 2.10 と android gradle plugin 2.0.0-beta2 を使用します。
実行したいテストがわかっているので、おそらくどのモジュール/フレーバーを使用するかもわかっています。正確なモジュールと Gradle タスクを指定することで、Gradle を支援できます。したがって、テストがapp
モジュール内にあり、debug
フレーバーをテストする場合:
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=<pkg>.YourClassName
tests_regex
代わりに、引数を使用してさらに派手にすることができます。
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.tests_regex=PartialClassName*
./gradlew app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.tests_regex=partialMethodName*
--tests
Android gradle プラグイン 1.1.0-rc1 以降、フラグを使用して単一のテスト クラスを実行するには、次を実行します。
./gradlew app:testDebug --tests=com.example.MyTest
http://tools.android.com/tech-docs/unit-testing-support#TOC-Running-from-Gradleを参照してください
これをチェックする必要があります。
https://github.com/JCANdKSolutions/android-unit-test
私はこの github リポジトリでイシューを作成し、この男が私の問題を解決して Maven にアップロードしたので、私の build.gradle ファイルでこのプラグインを使用しています。
指示は彼のリポジトリに書かれています。簡単にフォローできます。
この android-unit-test プラグインを使用した後、次のように使用できます
../gradlew -Dtest.single=SomeTest test
また
../gradlew -Dtest.single=SomeTest clean check
今は機能しており、必要な特定のテストしか実行できませんでした