Android Test Orchestrator не работает с Android X

Недавно я перенес свой проект на использование AndroidX и настроил тестовый оркестратор для своих тестов эспрессо на gradle, используя следующие документы:

https://developer.android.com/training/testing/junit-runner#using-android-test-orchestrator

У меня есть зависимость:

androidTestUtil 'androidx.test:orchestrator:1.1.0-beta01'

Однако ни один из моих тестов не выполняется и похоже, что они терпят неудачу, когда запуск gradle запускает следующую команду оболочки adb, т.е.:

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'

глядя на вышеизложенное: кажется, что он пытается выполнить эту команду с версией поддержки Android, а не с версией androidx.

Кажется, нигде не задокументировано, что использовать для androidx.


person FlashAsh99    schedule 11.10.2018    source источник


Ответы (3)


Чисто угадывая, я изменил следующее в своей конфигурации gradle

из:

  testOptions {
    execution 'ANDROID_TEST_ORCHESTRATOR'
  }

to

  testOptions {
    execution 'ANDROIDX_TEST_ORCHESTRATOR'
  }

и вроде все работает.

person FlashAsh99    schedule 11.10.2018
comment
Интуитивно очевидное для стороннего наблюдателя. JK -- если бы я мог дать вам больше стрелок вверх, я бы это сделал. - person JohnnyLambada; 17.10.2018
comment
При переключении на ANDROIDX_TEST_ORCHESTRATOR я получаю Unknown Execution value 'ANDROIDX_TEST_ORCHESTRATOR'. Possible values are 'host', 'android_test_orchestrator'. - person Mark Han; 15.11.2018
comment
Я получаю то же исключение @MarkHan - вы поняли это? - person dazza5000; 15.11.2018
comment
Возможно, обновление до classpath 'com.android.tools.build:gradle:3.2.1' исправило это для меня. Какую версию ты используешь? @dazza5000 - person Mark Han; 16.11.2018
comment
При переключении на ANDROIDX_TEST_ORCHESTRATOR я получаю сообщение об ошибке 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). Обновление com.android.tools.build:gradle не помогло. - person Akhil Tiwari; 03.12.2018
comment
Вы должны использовать Gradle Build Tools 3.2.1 для распознавания ANDROIDX_TEST_ORCHESTRATOR - person Eurig Jones; 19.12.2018

Для всех, кто борется с сообщением об ошибке 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), ANDROIDX_TEST_ORCHESTRATOR кажется несовместимым с последней версией IntelliJ (2018.3.5), он отлично работал в Android Studio (3.3.2).

person realitydisorder    schedule 04.03.2019

Всем, у кого есть сложные проекты - вот мои изменения в градиенте

repositories {
mavenCentral()
flatDir {
    dirs 'aars'
}
maven {
    url "https://maven.google.com"
}
google()}


testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"


dependencies {
compile 'androidx.lifecycle:lifecycle-extensions:2.0.0'
compile 'androidx.core:core:1.0.0'
compile 'androidx.recyclerview:recyclerview:1.0.0'
compile 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.multidex:multidex:2.0.0'
//kapt 'androidx.databinding:databinding-compiler:1.0.0'
androidTestImplementation('androidx.test:runner:1.1.0', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
androidTestImplementation('androidx.test:rules:1.1.0', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
androidTestUtil 'androidx.test:orchestrator:1.1.0'
implementation 'androidx.test.espresso:espresso-idling-resource:3.1.0'
// Espresso support
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
androidTestImplementation('androidx.test.espresso:espresso-intents:3.1.0', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
androidTestImplementation('androidx.test.espresso:espresso-web:3.1.0', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile('androidx.room:room-runtime:2.0.0', {
    exclude group: 'com.android.support'
})
kapt 'androidx.room:room-compiler:2.0.0'
compile('androidx.room:room-rxjava2:2.0.0', {
    exclude group: 'com.android.support'
})
testCompile('androidx.room:room-testing:2.0.0', {
    exclude group: 'com.google.code.gson'
})
androidTestImplementation('androidx.test.espresso:espresso-contrib:3.1.0') {
    exclude group: 'com.android.support', module: 'appcompat'
    exclude group: 'com.android.support', module: 'support-v4'
    exclude module: 'recyclerview-v7'
}
compile 'androidx.exifinterface:exifinterface:1.0.0'}


       classpath 'com.android.tools.build:gradle:3.4.1'

остальные ошибки пришлось исправлять вручную но в итоге заработало

person cindy    schedule 13.12.2019