Kotlin Multiplattform Project Unit Test Test


8

Heute habe ich gerade mein Android Studio auf aktualisiert

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

Ich habe das Android Studio aktualisiert, weil es mich zu einem Fehler auffordert, wenn die Kotlin-Version unter 1.3.60 liegt.

Ich habe jedoch ein Problem mit der Unit-Test-Datei. Bisher kann ich den Unit-Test problemlos durchführen. Wenn ich jetzt neben dem Funktionsnamen (links) auf die Schaltfläche Ausführen klicke, wird hier nichts angezeigt.

Geben Sie hier die Bildbeschreibung ein

Unten sind alle meine Abhängigkeiten

// 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
    }
}
}

Gibt es etwas, das ich in dieser neuen Android Studio- und Kotlin-Version verpasst habe? Ich habe stundenlang damit zu kämpfen. Durchsuchte das Web, konnte aber anscheinend keine Hilfe finden.

Vielen Dank


Obligatorisch haben Sie versucht, Caches ungültig zu machen und neu zu starten?
Evgeny Bovykin

@ EvgenyBovykin ja, Sir, habe das schon versucht und nichts anderes
alvinWB

Ich stehe vor dem gleichen Problem ......
James Fu

1
Ich habe einen Fehler für Android Studio gemeldet
hardysim

1
Ich habe auch ein Problem bei jetbrains eingereicht: youtrack.jetbrains.com/issue/KT-25065
hardysim

Antworten:


0

Neuinstallation Android Studio hat dieses Problem behoben. Ich hätte nie gedacht, dass dieses Problem auftreten wird. Android Studio wurde in der Vergangenheit mehrmals aktualisiert, und dies ist meine erste Begegnung mit solchen Problemen.


Ich habe sogar versucht, eine Neuinstallation auf einem neuen Computer durchzuführen, aber das Problem bleibt bestehen (auch in Version 3.5.3).
Pekannuss

Ich habe auch das gleiche Problem und es zeigt "nichts hier" in meinem allgemeinen Test an, funktioniert aber gut in meinem Android-Test. Ich muss den Test ausführen, indem ich die Konfiguration selbst schreibe, um den Code im allgemeinen Test auszuführen. Andernfalls können Sie versuchen, alle Tests über die Befehlszeile auszuführen.
James Fu

Dies passiert für mich seit 3.5.x bis 3.6 heute stabil. Versucht klar, neu installieren, Jetbrains Toolbox und Standalone-Downloads etc .. Nichts hilft.
Hardysim

Bei Verwendung von normalem (neuestem) IntelliJ werden die Optionen zum Ausführen / Debuggen bei jedem Test angezeigt. Wenn Sie jedoch darauf klicken, wird nur "Keine Aufgaben verfügbar" angezeigt.
Hardysim

Es funktioniert mit einem neuen Projekt (aus dem Assistenten "Neues Projekt" mit "Mobile Shared Library | Gradle") unter IntelliJ 2019.3.3. Das Öffnen des gleichen Projekts in Android Studio 3.6 ist jedoch nicht möglich ("Nothing here").
Hardysim

0

In meinem Fall sind diese Probleme aufgetreten, als ich von aktualisiert habe

  • Android Studio 3.5.3 und Kotlin Plugin Version v1.3.50-release-Studio3.5-1

zu

  • Android Studio 3.6.3 mit Kotlin Plugin 1.3.71-release-Studio3.6-1

Alle meine gängigen Kotlin MPP-Tests wurden nicht mit der erwarteten IDE-Nebenfunktion "grün" ausgeführt und zeigten auch die Meldung " Nichts hier" an .

Ich habe ein paar Dinge ausprobiert, eine davon war eine vollständige Deinstallation und anschließende Installation, aber nichts schien zu funktionieren.

Was letztendlich für mich funktioniert hat, war (mit einigen Einschränkungen):

  • hat einen neuen Test erstellt (funktioniert auch mit vorhandenen Tests, aber nur als Beispiel)

Bild 1

um sicherzustellen, dass das Nichts hier zeigt.

Dann:

  • Öffnen Sie die Dropdown-Liste neben dem ausgewählten Emulator und klicken Sie auf Konfigurationen bearbeiten
  • Klicken Sie unter Android JUnit auf die Schaltfläche + , um eine neue Konfiguration hinzuzufügen
  • es sollte so aussehen:

pic2

Stellen Sie sicher, dass die Testart Klasse ist und dass Sie den richtigen Pfad zur Datei haben. Zum Beispiel:

com.my.path.is.correct.MyNewTestCase

Stellen Sie außerdem sicher, dass Sie das richtige Modul für den allgemeinen Kotlin haben. in meinem Fall war es üblich (nicht commonTest).

Danach sollten Sie in der Lage sein, die Testklasse über die Hauptschaltfläche Ausführen (erneut neben der Emulator-Dropdown-Liste) auszuführen und sie sogar als Debug auszuführen .

Die "grüne" Schaltfläche "Ausführen" neben der Funktion sagt hier immer noch " Nichts", aber das Hinzufügen eines Haltepunkts und das Ausführen der neuen Konfiguration über die Hauptschaltfläche " Debuggen" funktioniert für mich:

pic3

Dies ist offensichtlich nicht perfekt, aber es war die einzige Möglichkeit, es von der IDE aus arbeiten zu lassen, die ich finden konnte.

Ich hoffe es hilft!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.