Las testings Android Express (escritas en Kotlin) no pueden ver las principales classs y packages

Tengo un problema con las testings Kotlin Espresso. He aplicado el complemento Kotlin-Android Gradle en el script de construcción del module, y las testings se ejecutan sin problemas en Android Studio (la class de testing está anotada y ejecutada por el cornetworkingor AndroidJUnit4 ), pero al ejecutar la tarea de Gradle "assembleDebugAndroidTest" desde el terminal no puedo encontrar principales classs y packages (classs utilizadas en las testings). Lanza un error de Unresolved Reference .

Aquí está la sección sourceSets del script de compilation:

 sourceSets { androidTest { java.srcDir 'src/shanetworkingTestUtils/java' java.srcDir 'src/acceptanceTests/java' java.srcDir 'src/functionalTests/java' java.srcDir 'src/shanetworkingTestUtils/kotlin' java.srcDir 'src/acceptanceTests/kotlin' java.srcDir 'src/functionalTests/kotlin' } acceptanceTests { java.srcDir 'src/shanetworkingTestUtils/java' java.srcDir 'src/shanetworkingTestUtils/kotlin' } // source sets for Kotlin // main.java.srcDirs += 'src/main/kotlin' test.java.srcDirs += 'src/test/kotlin' } 

Y testing las dependencies en el module:

 apply plugin: 'kotlin-android' dependencies { androidTestCompile deps.kotlin androidTestCompile deps.kotlinTest androidTestCompile deps.kotlinTestJunit } 

Script de compilation del proyecto:

 ext.deps = [ kotlin : "org.jetbrains.kotlin:kotlin-stdlib:$ver.kotlin", kotlinTest : "org.jetbrains.kotlin:kotlin-test:$ver.kotlin", kotlinTestJunit : "org.jetbrains.kotlin:kotlin-test-junit:$ver.kotlin" ] 

Estoy usando la versión 1.0.5-2 de Kotlin.

Tenemos un cornetworkingor de testing personalizado como testInstrumentationRunner que registra algunos resources inactivos y un gancho de actividad para desbloquear la pantalla del dispositivo y adquirir el locking de activación, y utiliza TestButler para deshabilitar animaciones y estabilizar las testings. Sin embargo, las testings están anotadas con Espresso jUnit 4 runner ( @RunWith(AndroidJUnit4::class) ). Pero el hecho de que Android Studio ejecute las testings sin ningún problema es confuso.

La tarea de compilation de testing de kotlin debe ejecutarse después de la tarea de ensamblaje correspondiente para que las references de class funcionen correctamente.

Para assembleDebugAndroidTest , asegúrese de que assembleDebug se ejecute primero.

Desde la command-line, el order de las tareas se puede verificar rápidamente con gradle " dry run " de esta manera:

 ./gradlew assembleDebugAndroidTest -m 

Si assembleDebug no está en el order correcto. Puede corregir el order agregando lo siguiente a su file de compilation:

 afterEvaluate { compileDebugAndroidTestKotlin.dependsOn assembleDebug } 
  • La testing Running Spek muestra el error "Suite de testing vacía"
  • Obtener una instancia de subcomponente en una actividad
  • Spring Boot serializa text / javascript a JSON
  • Cuál es el enfoque correcto cuando la function de Kotlin no toma el tipo de nullable
  • ¿Cómo podría dividir una cadena en una matriz en Kotlin?
  • Cómo actualizar las classs de datos implementando una interfaz común
  • Funciones de mayor order de Kotlin en el proyecto de Java
  • NotificationManager.setInterruptionFilter no funciona para ciertos teléfonos
  • Cómo depurar el error "No se pudo resolver com.google.android:android" en Anko
  • Travis CI: Maven no consigue la dependencia de Kotlin 1.1.1 en Linux
  • ¿Cuál es la forma más rápida / más simple de calcular una media mobile en Kotlin?