unit test studio hacer como android unit-testing android-studio kotlin

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:

  1. haga clic en editar configuraciones Ejecutar editar configuraciones

  2. Vaya a Ejecutar / Depurar configuraciones-> Valores predeterminados-> Android JUnit select te Toque Cobertura de código ingrese la descripción de la imagen aquí

  3. Elije la cobertura Runner: selecciona JaCoCo

  4. Aplicar -> Ok

  5. ejecute su prueba de nuevo y listo obtendrá la cobertura