Problema de prueba de unidad de proyecto multiplataforma de Kotlin


8

Hoy acabo de actualizar mi Android Studio a

Android Studio 3.5.2
Build #AI-191.8026.42.35.5977832, built on October 31, 2019
JRE: 1.8.0_202-release-1483-b49-5587405 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.15.1

Actualicé el Android Studio porque me genera un error cuando la versión de kotlin es inferior a 1.3.60.

Sin embargo, tengo un problema con el archivo de prueba de la unidad. Anteriormente puedo ejecutar la prueba unitaria sin ningún problema. Ahora, cuando hago clic en el botón Ejecutar junto al nombre de la función (a la izquierda), muestra Nada aquí.

ingrese la descripción de la imagen aquí

A continuación se muestran todas mis dependencias.

// build.gradle

buildscript {
ext.kotlin_version = '1.3.60'
repositories {
    google()
    jcenter()
    maven { url "https://kotlin.bintray.com/kotlinx" }
}

dependencies {
    // classpath 'com.android.tools.build:gradle:3.4.1'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
}
}

allprojects {
  repositories {
    google()
    jcenter()
  }
}

task clean(type: Delete) {
   delete rootProject.buildDir
}


 apply plugin: 'kotlin-multiplatform'
 apply plugin: 'kotlinx-serialization'

kotlin {
targets {
    final def iOSTarget = presets.iosX64 // Simulator

    fromPreset(iOSTarget, 'iOS') {
        binaries {
            framework('SharedCode')
        }
    }
    fromPreset(presets.jvm, 'android')
}

sourceSets {
    commonMain {
        dependencies {
            api 'org.jetbrains.kotlin:kotlin-stdlib-common'
            implementation "org.jetbrains.kotlin:kotlin-test-common:$kotlin_version"
            implementation "org.jetbrains.kotlin:kotlin-test-annotations-common:$kotlin_version"
            implementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
            implementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
        }
    }

    iOSMain {
        dependsOn commonMain
    }

    androidMain.dependencies {
        api 'org.jetbrains.kotlin:kotlin-stdlib'
    }

    commonTest {
        dependsOn commonMain
    }
}
}

¿Hay algo que me perdí en esta nueva versión de Android Studio y kotlin? He estado luchando con esto por horas. Navegué por la web pero parece que no pude encontrar ninguna ayuda.

Gracias


Obligatorio ¿Intentaste invalidar cachés y reiniciar?
Evgeny Bovykin

@EvgenyBovykin sí señor, ya lo intenté, y nada diferente
alvinWB

Me enfrento al mismo problema ......
James Fu

1
Archivé un error para Android Studio: issuetracker.google.com/issues/150157086
hardysim

1
También presenté un problema en jetbrains: youtrack.jetbrains.com/issue/KT-25065
hardysim

Respuestas:


0

La instalación limpia de Android Studio solucionó este problema. Nunca pensé que este problema ocurriría. Android Studio actualizado varias veces en el pasado, y este es mi primer encuentro de este tipo.


Intenté incluso una instalación limpia en una computadora nueva, pero el problema persiste (también en la versión 3.5.3).
Pacana

También enfrento el mismo problema, y ​​muestra "nada aquí" en mi prueba común, pero funciona bien en mi prueba de Android. Necesito ejecutar la prueba escribiendo la configuración por mí mismo para ejecutar el código en la prueba común. De lo contrario, puede intentar ejecutar todas las pruebas por línea de comando.
James Fu

Esto me sucede desde 3.5.x hasta 3.6 estable hoy. Intentó borrar, reinstalar, caja de herramientas de jetbrains y descargas independientes, etc. Nada ayuda.
hardysim

El uso de IntelliJ normal (más reciente) muestra las opciones para ejecutar / depurar en cada prueba, pero al hacer clic en él solo se muestra "No hay tareas disponibles".
hardysim

Funciona en un proyecto nuevo (desde el asistente de "proyecto nuevo" usando "Biblioteca compartida móvil | Gradle") en IntelliJ 2019.3.3. Pero abrir el mismo proyecto en Android Studio 3.6 no lo hace ("Nada aquí").
hardysim

0

En mi caso, estos problemas ocurrieron cuando actualicé desde

  • Android Studio 3.5.3 y la versión del complemento Kotlin v1.3.50-release-Studio3.5-1

a

  • Android Studio 3.6.3 con el complemento Kotlin 1.3.71-release-Studio3.6-1

Todas mis pruebas comunes de Kotlin MPP no se ejecutaban desde la función "verde" de la función lateral IDE esperada y también mostraban el mensaje Nada aquí .

Intenté algunas cosas, una de ellas fue la desinstalación completa y luego la instalación, pero nada parecía funcionar.

Lo que terminó funcionando para mí fue (con algunas advertencias):

  • creó una nueva prueba (también funciona con las pruebas existentes, pero solo como ejemplo)

foto 1

para asegurarse de que se muestra Nothing Here .

Entonces:

  • abra el menú desplegable junto al emulador seleccionado y haga clic en Editar configuraciones
  • bajo Android JUnit, haga clic en el botón + para agregar una nueva configuración
  • Debe tener un aspecto como este:

pic2

asegúrese de que el tipo de prueba sea Clase y que tenga la ruta correcta al archivo. Por ejemplo:

com.my.path.is.correct.MyNewTestCase

Además, asegúrese de tener el módulo correcto para el Kotlin común; en mi caso fue común (no commonTest).

Después de lo anterior, debería poder ejecutar la clase de prueba desde el botón principal Ejecutar (nuevamente, junto a la lista desplegable del Emulador) e incluso ejecutarla como Depurar .

El botón de ejecución "verde" al lado de la función aún no dice nada aquí, pero agregar un punto de interrupción y ejecutar la nueva configuración desde el botón de depuración principal me funciona:

ingrese la descripción de la imagen aquí

Obviamente, esto no es perfecto, pero fue la única forma de hacerlo funcionar desde el IDE que pude encontrar.

¡Espero eso ayude!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.