问题
I have recently migrated my project to use AndroidX, and have configured test orchestrator for my espresso tests on gradle using the following docs:
https://developer.android.com/training/testing/junit-runner#using-android-test-orchestrator
I have the dependency:
androidTestUtil 'androidx.test:orchestrator:1.1.0-beta01'
However, none of my tests are executed and looks like they fail when running gradle runs the following adb shell command i.e:
adb shell 'CLASSPATH=$(pm path android.support.test.services) app_process / \
android.support.test.services.shellexecutor.ShellMain am instrument -w -e \
targetInstrumentation com.example.test/androidx.test.runner.AndroidJUnitRunner \
android.support.test.orchestrator/.AndroidTestOrchestrator'
from looking at the above: It seems like it is trying to execute this command with android support version as opposed to the androidx version.
It doesn't seem to be documented anywhere what to use for androidx.
回答1:
Purely by guessing, I changed the following in my gradle config
from:
testOptions {
execution 'ANDROID_TEST_ORCHESTRATOR'
}
to
testOptions {
execution 'ANDROIDX_TEST_ORCHESTRATOR'
}
and all seems to work.
回答2:
For anyone else struggling with the Cannot convert string value 'ANDROIDX_TEST_ORCHESTRATOR' to an enum value of type 'com.android.builder.model.TestOptions$Execution' (valid case insensitive values: HOST, ANDROID_TEST_ORCHESTRATOR)
error message, ANDROIDX_TEST_ORCHESTRATOR
seems to be incompatible with the latest version of IntelliJ (2018.3.5), it worked fine in Android Studio (3.3.2).
来源:https://stackoverflow.com/questions/52759444/android-test-orchestrator-not-working-with-android-x