webentwicklung-frage-antwort-db.com.de

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

Ich habe eine Testsuite für meine Android-App und alle Gerätetests laufen einwandfrei. Immer wenn ich eine einzelne Änderung in einer meiner Komponententestklassen (zum Beispiel ModelUnitTests) vornehme, wenn ich versuche, diese Klasse erneut auszuführen, erhalte ich diese Nachricht

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

Wenn ich gradle clean mache und dann die Klassentests erneut durchführe, läuft es einwandfrei (aber es dauert 4 Minuten ...), aber eine neue Änderung führt zum erneuten Abbruch.

Irgendwelche Ratschläge, wie man das beheben kann? Ich bin nicht ganz sicher, welche Testkonfiguration ich posten sollte. Ich verwende das Artefakt "Unit-Tests" und meine Tests befinden sich im Ordner "module/src/test/package"

52
Koitt

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

Um das Problem zu lösen, bin ich zu Edit Configurations gegangen, links vom Run-Symbol. Unter Unit Test war es die Klasse 'Konflikt', die ich löschte. Klicken Sie auf Übernehmen/Ok. Dann klicke ich mit der rechten Maustaste auf den Klassennamen, dann auf Ausführen und voilà, es funktioniert.

59
RobertoAllende

Ich hatte das gleiche problem Ich habe festgestellt, dass die zu testende Methode in der Dropdown-Liste Run/Debug-Konfiguration angezeigt wird als:
TestClassName.testMethod()
anstatt der richtigen:
testMethod()

Ich habe es behoben, indem ich die TestClass.testMethod() Run/Debug-Konfiguration für die Testmethode gelöscht habe, die diesen Fehler verursacht hat, und dann den Test erneut ausgeführt habe.

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

14
Edmund Johnson

Das Update für Android Studio ist:

  • schritt 1. Gehen Sie zu Konfiguration ausführen/Debuggen
  • schritt 2. Gehen Sie zum Abschnitt Android-Tests
  • schritt 3. Entfernen Sie die Testkonfigurationsdatei mit (-)
  • schritt 4. Drücken Sie Übernehmen und OK
  • schritt 5. Führen Sie den Test erneut aus

Ich bin gerade auf dieses Thema gestoßen - meine Unit-Tests in Kotlin zu schreiben. In meinem Fall stellte sich heraus, dass ich vergessen hatte, das Kotlin-Plugin in der angegebenen Modul-build.gradle-Datei hinzuzufügen:

apply plugin: 'kotlin-Android'
6
estn

Ich hatte dieses Problem und keine der Antworten in diesem Beitrag (oder den anderen gut sichtbaren Stack Overflow-Beiträgen) löste es für mich.
.__ Die manuelle Ausführung der Gradle-Task compileTestKotlin scheint jedoch das Problem für mich gelöst zu haben.

Dies war für Kotlin-Tests Android Studio 3.1.2

5
Squimon

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 fand schließlich heraus, dass er in build.gradle in der Projektwurzel durch Folgendes verursacht wurde:

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

Wenn Sie Robolectric verwenden, müssen Sie möglicherweise das Arbeitsverzeichnis in der Laufkonfiguration auf $ MODULE_DIR $ setzen. enter image description here

Legen Sie auch die Optionen für VM fest : -ea Oder: -noverify

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

2
UmAnusorn

Ist mir in AS 3.3 passiert. 

Ich verwende Flavors und dies geschah in einem Modul, das nur src/main und src/test hat. Das App-Modul hat src/mainsrc/common und src/flavor. Der in AS ausgewählte Buildtyp war flavorDebug

Um das Problem zu beheben, ging ich zu "Run Configurations" und im Dropdown-Menü "Klassenpfad des Moduls verwenden" wurde das App-Modul ausgewählt. Wählen Sie das Modul aus, das Sie testen möchten und voila!

0
tricknology

Ich hatte dieses Problem heute bei einem meiner Testkurse und keine der Lösungen schien hier zu helfen. Durch das Ausführen einer anderen Testklasse wurde das Problem jedoch behoben. Danach lief die ursprünglich problematische Klasse korrekt.

0
ajh3