私はRoman Mazurのspoon-gradle-pluginを使用しています。一度にすべてのテストを実行できますが、起動したいテストの「グループ」を指定するのに問題があります。現在、私のスプーンのセットアップは次のようになっています。
spoon {
debug = true
baseOutputDir = file("$buildDir/spoon-log")
if (project.hasProperty('spoonClassName')) {
className = project.spoonClassName
if (project.hasProperty('spoonMethodName')) {
methodName = project.spoonMethodName
}
}
adbTimeout = 60 * 60;
}
私のテストはパッケージにあります:
そして、私の目標は、spoon に依存する個別の gradle タスクを作成して、各パッケージから個別にテストを起動することです。Roman は、スプーン内のいくつかのプロパティを編集できるパラメーターinstrumentationArgsを提供してくれました。
スプーンのメインgitでわかるように、パッケージを指定できると書かれています。ここで、スプーンランナーがテストを探す必要があり、例は次のようになります。
--e package=com.mypackage.unit_tests
だから私の考えは、このプロパティをinstrumentationArgsに入れることでした。その結果、次のようなスプーン タスクを作成しました。
task spoonAuthFlowTests(type: GradleBuild, dependsOn: ['spoon']) {
spoon {
instrumentationArgs = ["package=com.myapp.instrumentation.flowtests.AuthFlowTests"]
noAnimations = true;
}
}
task spoonFlowTests(type: GradleBuild, dependsOn: ['spoon']) {
spoon {
instrumentationArgs = ["package=com.myapp.instrumentation.flowtests"]
noAnimations = true;
}
}
私が言えることは、 noAnimations パラメータがデフォルトのスプーン設定を適切に拡張しているため、GIF が作成されないということです。したがって、instrumentationArgs は確かに文字列配列を取得していますが、端末では次のように変更を適用しません。
2016-01-08 15:13:10 [SDR.run] About to actually run tests for [04ffe19ad317d2e7]
03:13:10 I/RemoteAndroidTest: Running am instrument -w -r -e package com.myapp.instrumentation.flowtests -e class com.myapp.instrumentation.flowtests.AuthFlowTests.LoginUserFlowTests com.myapp.debug1.test/com.myapp.instrumentation.helper.runner.MyAppTestRunner on lge-nexus_4-04ffe19ad317d2e7
「パッケージ」プロパティで何をするかはわかりませんが、常に結果を受け取ります:
-e package com.myapp.instrumentation.flowtests
また、変更したいのですが、方法がわかりません。さらに、プロジェクトの「com.myapp.instrumentation.flowtests」文字列を検索しようとしたと言えますが、それが使用される唯一の場所は、パッケージ内のテスト + 上記の gradle タスクです。したがって、どこにもハードコードされていません。次の方法でテストを開始すると、同じ場所が選択されます。
./gradlew spoon
そして、私が使用した後:
./gradlew spoonAuthFlowTests
また、テスト セット全体を実行します。