SpoonGradlePlugin でテストを実行するために使用される .apk ファイルを設定したいと思います。
gradle ファイルからプログラムで設定できる利用可能なプロパティがあります。
しかし、私のプロジェクトにはさまざまなフレーバーと名前があり、それらをテストしたいと思います。現在のセットアップでは、次のようになります。
* What went wrong:
A problem was found with the configuration of task ':app:spoonDebugAndroidTest'.
> File '/Users/F1sherKK/Dev/MyApp-Android/app/build/outputs/apk/app-debug.apk' specified for property 'applicationApk' does not exist.
私のビルド名は次のとおりです。
app-debug-androidTest-unaligned.apk
MyApp-debugA-1.2.3-201.apk
MyApp-debugB-1.2.3-201.apk
MyApp-debugC-1.2.3-201.apk
.apk を gradle コードまたはコンソールのどこかにセットアップしたいのはそのためです。私がこれまでに見つけたものには、Spoon Gradle Plugin で利用可能なフィールドがあります。
名前付き:
/** Instrumentation APK. */
@InputFile
File instrumentationApk
/** Application APK. */
@InputFile
File applicationApk
しかし、SpoonExtension.groovy のプロパティのようなグラドルにはアクセスできません。
これらのフィールドを設定する方法はありますか?
//編集 - いくつかの試行を追加しました: これは私の基本スプーン構成です:
spoon {
debug = true
baseOutputDir = file("$buildDir/spoon-log")
if (project.hasProperty('spoonClassName')) {
className = project.spoonClassName
if (project.hasProperty('spoonMethodName')) {
methodName = project.spoonMethodName
}
}
}
そして、それを拡張し、instumentationArgs を上書きしてパッケージを設定し、他の種類のテストを起動するタスク。
task spoonAllTests(type: GradleBuild, dependsOn: ['spoon']) {
spoon {
instrumentationArgs = ["package=com.myapp.sendmoney.instrumentation"]
}
}
task spoonFlowTests(type: GradleBuild, dependsOn: ['spoon']) {
spoon {
instrumentationArgs = ["package=com.myapp.instrumentation.flowtests"]
}
}
そして今、applicationApk または instrumentationApk ファイルを編集しようとしています:
Edit2:私は新しいことを試しました:
task spoonFlowTests(type: GradleBuild, dependsOn: ['spoon']) {
spoon {
inputs.property("applicationApk", "$buildDir/outputs/apk/ap12345p-debug.apk")
inputs.property("instrumentationApk", "$buildDir/outputs/apk/ap125p-debug.apk")
println inputs.getFiles()
println inputs.getProperties()
instrumentationArgs = ["package=com.azimo.sendmoney.instrumentation.flowtests"]
}
}
そして端末応答:
2015-10-26 20:24:12 [SR.runTests] Executing instrumentation suite on 0 device(s).
2015-10-26 20:24:12 [SR.runTests] Application: com.azimo.sendmoney.debug1 from /Users/F1sherKK/Dev/Azimo-Android/app/build/outputs/apk/app-debug.apk
2015-10-26 20:24:12 [SR.runTests] Instrumentation: com.azimo.sendmoney.debug1.test from /Users/F1sherKK/Dev/Azimo-Android/app/build/outputs/apk/app-debug-androidTest-unaligned.apk
:app:spoon
:app:spoonFlowTests
file collection
{instrumentationApk=/Users/F1sherKK/Dev/Azimo-Android/app/build/outputs/apk/ap125p-debug.apk, applicationApk=/Users/F1sherKK/Dev/Azimo-Android/app/build/outputs/apk/ap12345p-debug.apk}
:Azimo-Android:app:help
Welcome to Gradle 2.5.
To run a build, run gradlew <task> ...
To see a list of available tasks, run gradlew tasks
To see a list of command-line options, run gradlew --help
To see more detail about a task, run gradlew help --task <task>
BUILD SUCCESSFUL
Total time: 13.289 secs