Klasse nicht gefunden: Leere Testsuite beim Ausführen von Komponententests in Android Studio

Lesezeit: 4 Minuten

Ich habe eine Testsuite für meine Android-App und alle Komponententests laufen einwandfrei. Immer wenn ich jedoch eine einzelne Änderung in einer meiner Einheitentestklassen vornehme (z. B. ModelUnitTests), wenn ich versuche, diese Klasse erneut auszuführen, erhalte ich diese Meldung

Process finished with exit code 1
Class not found: "xxx.xxxxxx.xxx.ModelUnitTests"Empty test suite.

Wenn ich einen Gradle Clean mache und dann die Klassentests erneut durchführe, läuft es gut (aber es dauert 4 Minuten, um es zu tun …), aber dann wird eine neue Änderung es wieder kaputt machen.

Irgendwelche Ratschläge, wie man das beheben kann? Ich bin mir nicht ganz sicher, welche Testkonfiguration ich posten soll. Ich verwende das Unit-Tests-Artefakt und meine Tests befinden sich auf der
module/src/test/package Mappe

  • Wenn Sie Robolectric verwenden, überprüfen Sie, ob sich die Testdatei in der $MODULE$/test Verzeichnis statt $MODULE$/androidTest Es ist mir passiert, ich habe ungefähr eine Stunde damit verbracht, es herauszufinden

    – crgarridos

    25. Juni 2018 um 3:00 Uhr

  • Verwandter Beitrag – Warum meldet der Android-Testläufer „Leere Testsuite“? & Klasse nicht gefunden: Leere Testsuite in IntelliJ

    – RBT

    20. August 2018 um 5:09 Uhr


  • Ich habe ein ähnliches Problem, aber es passiert nur einmal nach dem Öffnen von Android Studio. Aber ich muss nur versuchen, den Test ein zweites Mal durchzuführen. Dann läuft es und läuft weiter bis ich Android Studio neu starten muss. Irgendetwas stimmt nicht, aber der Ärger war gering genug, dass ich es bis heute ignoriert habe.

    – Brian Reinhold

    13. Dezember 2018 um 12:19 Uhr

Benutzer-Avatar
Robert Allende

Ich hatte ein ähnliches Problem und es lag daran, dass ich zuerst einen Komponententest mit demselben Klassennamen erstellt. Als ich den Instrumented Unit Test erstellte, bekam ich den Fehler.

Um es zu lösen, ging ich zu Edit Configurations, links neben dem Run-Symbol. Dann unten Gerätetestes war der ‘widersprüchlich’ Klasse, welche Ich löschte. Klicken Sie auf Anwenden/Ok. Dann klicke ich mit der rechten Maustaste auf den Klassennamen, klicke auf Ausführen und voilà, es funktioniert.

  • Ursache war in meinem Fall, dass ich irgendwann auf eine Release-Build-Config umgestiegen bin, die eine andere applicationId hat. Android Studio versuchte weiterhin, die Release-Anwendungs-ID für den Test zu verwenden, obwohl ich zurück zur Debug-Konfiguration gewechselt war.

    – Aaronvargas

    19. September 2017 um 23:55 Uhr

  • Wenn dies passiert, lösche ich einfach alle meine Laufkonfigurationen aus AS, wie oben beschrieben, und versuche es erneut. Wahrscheinlich ist es passiert, weil ich einige Änderungen an der Testklasse vorgenommen oder zu einem Zweig gewechselt habe, in dem es Unterschiede in der Testklasse gibt.

    – Tricknologie

    10. Januar 2019 um 3:39 Uhr

  • Vielen Dank ! Ich verbrachte viel Zeit damit, zu verstehen, was passierte. Ich hatte auch ein Problem zwischen Release und Debug.

    – Laurent D.

    20. Juni 2019 um 7:52 Uhr

  • Danke, das war genau mein Problem

    – 1800 INFORMATIONEN

    16. Februar 2020 um 21:54 Uhr

Die Lösung für Android Studio ist:

  • Schritt 1.- Gehen Sie zur Run/Debug-Konfiguration
  • Schritt 2.- Gehen Sie zum Abschnitt Android-Tests
  • Schritt 3.- Entfernen Sie die Testkonfigurationsdatei mit (-)
  • Schritt 4.- Drücken Sie Anwenden und OK
  • Schritt 5.- Führen Sie den Test erneut durch

  • Danke, das hat funktioniert, scheint ein Fehler in Android Studio zu sein. Ich musste auch meine Tests aus dem Bereich Unit-Tests entfernen, sie wurden dort aus unklaren Gründen fälschlicherweise registriert.

    – Südton

    10. Oktober 2019 um 10:42 Uhr

Ich bin gerade darauf gestoßen – das Schreiben meiner Komponententests in Kotlin. In meinem Fall stellte sich heraus, dass ich vergessen hatte, das Kotlin-Plugin in bestimmten Modulen hinzuzufügen build.gradle Datei:

apply plugin: 'kotlin-android'

Ich hatte das gleiche Problem. Mir ist aufgefallen, dass die zu testende Methode in der Dropdown-Liste Run/Debug-Konfiguration wie folgt angezeigt wurde:
TestClassName.testMethod()

statt richtig:
testMethod()

Ich habe es behoben, indem ich die gelöscht habe TestClass.testMethod() Ausführen/Debuggen der Konfiguration für die Testmethode, die diesen Fehler verursacht hat, und erneutes Ausführen des Tests.

Wenn das gleiche Problem erneut auftritt, löschen Sie die falsche Run/Debug-Konfiguration, klicken Sie dann mit der rechten Maustaste auf die Testmethode und wählen Sie:
Create 'testMethod()'...

(anstelle von Run oder Debug), um eine funktionierende Konfiguration zu erstellen.

Ich hatte dieses Problem, und keine der Antworten in diesem Beitrag (oder den anderen gut sichtbaren Stack Overflow-Beiträgen) hat es für mich gelöst.
Die Gradle-Aufgabe wird jedoch manuell ausgeführt compileTestKotlin scheint das Problem für mich gelöst zu haben.

Dies war für Kotlin-Tests, Android Studio 3.1.2

Benutzer-Avatar
Jeffrey McKnight

Wenn Sie in einem Team arbeiten, überprüfen Sie alle Ihre build.gradle Dateien, um sicherzustellen, dass niemand die Testaufgaben deaktiviert. Ich hatte den Fehler „leere Testsuite“ und stellte schließlich fest, dass er durch Folgendes verursacht wurde: build.gradle an der Projektwurzel:

gradle.taskGraph.whenReady {
    tasks.each { task ->
        if (task.name.contains("Test"))
        {
            task.enabled = false
        }
    }
}

Benutzer-Avatar
ÄhmAnusorn

Wenn Sie Robolectric verwenden, müssen Sie möglicherweise das Arbeitsverzeichnis in der Laufkonfiguration als $MODULE_DIR$ festlegenGeben Sie hier die Bildbeschreibung ein

Legen Sie auch die VM-Optionen fest: -ea oder: -noverify

http://robolectric.org/getting-started/

1215460cookie-checkKlasse nicht gefunden: Leere Testsuite beim Ausführen von Komponententests in Android Studio

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy