La cobertura de código de estudio de Android no muestra ninguna class de Kotlin
Tengo 2 proyectos AS basados en Kotlin. Uno funciona bien, el otro no. Ambos tienen una estructura idéntica y una configuration de gradle. Estoy usando Kotlin 1.1.4-2 con AS 3.0b2.
El problema es que cuando ejecuto la cobertura de código, las classs que estoy probando ni siquiera aparecen en el informe de cobertura. Lo único que veo es R.java y BuildConfig.java, pero ninguno de mis files fuente se encuentra.
- Fallar las testings de la unidad kotlin después del plugin de gradle 3.0
- Ejecute testings de Kotlin Koans desde Android Studio
- No se pueden usar los nombres de método retrocedidos de Kotlin en androidTest - exception de descriptor incorrecto
- ¿Proporcionando object burlado a otro constructor de object falso?
- Solo la primera testing pasa con TestScheduler cuando se ejecutan varias testings (Kotlin)
Todos los files fuente están basados en Kotlin. Estoy usando Spek para mi testing de unidad. La misma configuration y versiones que mi otro proyecto funcional. Intenté usar la cobertura de código de JaCoCo y Jetbrains y ninguno de los dos funciona.
Me disculpo, todavía no puedo insert imágenes.
Este es el problema: informe de cobertura
Aquí está mi estructura de proyecto: estructura de files
Y aquí está mi bloque gradle de Android:
compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { minSdkVersion 16 targetSdkVersion 26 versionCode 1 versionName libraryVersion } buildTypes { debug { testCoverageEnabled = true } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
y mis dependencies:
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" implementation "io.reactivex.rxjava2:rxkotlin:2.1.0" testImplementation 'junit:junit:4.12' testImplementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version" testImplementation 'org.jetbrains.spek:spek-api:1.1.2' testImplementation 'org.jetbrains.spek:spek-junit-platform-engine:1.1.2' testImplementation 'org.junit.platform:junit-platform-runner:1.0.0-M4' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.0.0-M4' implementation 'com.android.support:appcompat-v7:26.0.1' implementation 'com.squareup.okhttp3:okhttp-ws:3.3.1' implementation 'com.google.protobuf:protobuf-java:2.6.1'
He intentado correr
task copyTestClasses(type: Copy) { from "build/tmp/kotlin-classes/debugUnitTest" into "build/intermediates/classes/debug" } task copySdkClasses(type: Copy) { from "build/tmp/kotlin-classes/debug" into "build/intermediates/classes/debug" }
antes de mi testing y eso tampoco funciona.
Lo extraño es que mi otro proyecto, que usa la misma versión AS, la versión Kotlin y la estructura del proyecto, funciona bien y genera una cobertura de código adecuada.
Cualquier ayuda sería apreciada.
- Kotlin coroutines usa produce y mockito para burlarse del trabajo de producción
- Corutinas de testing unitaria en el hilo de UI
- Comparta el código entre la testing unitaria y las testings de instrumentación cuando use kotlin
- La testing Running Spek muestra el error "Suite de testing vacía"
- ¿Cómo un código de testing unitaria envuelto en `runOnUiThread`?
- ¿Cómo probar una class con un oyente anónimo que se establece dentro de una function?
- cómo acceder a las properties internas desde el código de testing java
- Kotlin coroutines unit testing usando mockito
- Analizando json en Java Pojos con Gson de Kotlin falta información genérica
- Ventana cornetworkingera RxJava