studio - unit test android kotlin
La cobertura del código de estudio de Android no muestra ninguna clase de Kotlin (1)
Tengo 2 proyectos AS basados en Kotlin. Uno funciona bien, el otro no. Ambos tienen una estructura idéntica y gradle config. Estoy usando Kotlin 1.1.4-2 con AS 3.0b2.
El problema es que cuando ejecuto la cobertura de código, las clases que estoy probando ni siquiera aparecen en el informe de cobertura. Lo único que veo es R.java y BuildConfig.java, pero no se encuentra ninguno de mis archivos de origen.
Todos los archivos fuente están basados en Kotlin. Estoy usando Spek para mis pruebas de unidad. La misma configuración y versiones que mi otro proyecto funcional. Intenté usar la cobertura del código de JaCoCo y Jetbrains y ninguno funciona.
Pido disculpas, no puedo insertar imágenes todavía.
Este es el problema: informe de cobertura.
Aquí está mi estructura de proyecto: estructura de archivos
Y aquí está mi bloque android gradle:
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 dependencias:
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 prueba y eso tampoco funciona.
Lo que es extraño es que mi otro proyecto, utilizando la misma versión de AS, la versión de Kotlin y la estructura del proyecto, funciona bien y genera la cobertura de código adecuada.
Cualquier ayuda sería apreciada.
trate de usar JaCoco para la cobertura, este es un problema de IDEA de IntelliJ. La palabra clave en línea Kotlin causa un informe de cobertura de IDEA de IntelliJ 0%
Cómo usar JaCoco para obtener la cobertura: hacer funcionar la cobertura de prueba de Android Studio
currículum:
haga clic en editar configuraciones Ejecutar editar configuraciones
Vaya a Ejecutar / Depurar configuraciones-> Valores predeterminados-> Android JUnit select te Toque Cobertura de código ingrese la descripción de la imagen aquí
Elije la cobertura Runner: selecciona JaCoCo
Aplicar -> Ok
ejecute su prueba de nuevo y listo obtendrá la cobertura