it-swarm.com.de

Klasse nicht gefunden: Leere Test Suite in IntelliJ

Ich beginne gerade mit dem Informatikprogramm an meiner Hochschule und habe Probleme mit IntelliJ. Wenn ich versuche, Komponententests auszuführen, erhalte ich die Meldung

Process finished with exit code 1
Class not found: "edu.macalester.comp124.hw0.AreaTest"Empty test suite.

Ich sehe auch eine Nachricht mit dem Titel "Es wurden keine Tests gefunden" auf der linken Seite des Bildschirms. Mein Testcode ist hier:

package edu.macalester.comp124.hw0;


import org.junit.Test;
import static org.junit.Assert.*;

public class AreaTest {

    @Test
    public void testSquare() {
    assertEquals(Area.getSquareArea(3.0), 9.0, 0.001);
    }

    @Test
    public void testCircle() {
    assertEquals(Area.getCircleArea(3.0), 28.2743, 0.001);
    }
}

Und mein Projektcode ist hier:

package edu.macalester.comp124.hw0;

import Java.lang.Math;
public class Area {

/**
 * Calculates the area of a square.
 * @param sideLength The length of the side of a square
 * @return The area
 */
public static double getSquareArea(double sideLength) {
    // Has been replaced by correct formula
    return sideLength * sideLength;
}

/**
 * Calculates the area of a circle.
 * @param radius The radius of the circle
 * @return The area
 */
public static double getCircleArea(double radius) {
    // Replaced by correct value
    return radius * 2 * Math.PI;
}

}

Wie kann ich meine Tests zum Laufen bringen? Danke im Voraus. Ich verwende die neueste Version von IntelliJ IDEA CE.

145
arnbobo

Also war mein Problem hier mit Ordnernamen. Ich hatte meinen Code-Folder Classes 2016/2017 genannt, was IntelliJ nicht gefallen hat. Entfernen Sie einfach den Schrägstrich (oder einen anderen beleidigenden Charakter im Pfad), importieren Sie das Projekt erneut, und Sie können loslegen!

9
arnbobo

Hatte die gleiche Nachricht. Ich musste die Run/Debug-Konfiguration entfernen. 

In meinem Fall habe ich den Unit-Test zuvor als lokalen Test durchgeführt. Danach habe ich meinen Test in das androidTest-Paket verschoben und versucht, ihn erneut auszuführen. Android Studio erinnerte sich an die Konfiguration des letzten Durchlaufs, so dass es versucht wurde, es als lokaler Komponententest erneut auszuführen, der den gleichen Fehler ergab.

Nach dem Entfernen der Konfiguration und dem erneuten Ausführen des Tests wurde eine neue Konfiguration erstellt und gearbeitet.

 enter image description here

99
com2ghz

Ich ging zu 

File -> Invalidate Caches/Restart...

und dann hat es für mich funktioniert.

42
user674669

Ich hatte das gleiche Problem. Ich habe das Projekt wieder aufgebaut und es hat mir geholfen.

Gehe zu Build -> Projekt neu erstellen

Wenn Sie dann das Maven-Tool verwenden, empfehle ich die Option Alle Maven-Projekte erneut importieren


Wenn es nicht hilft, versuchen Sie eine andere mögliche Lösung:

  • Gehen Sie zu Datei--> Ungültige Caches/Neustart--> Ungültigmachen und Neustart

oder:

  • Klicken Sie in Ihrer Maven-Projektstruktur src/main/Java mit der rechten Maustaste auf das Verzeichnis Java und wählen Sie die Option Verzeichnis markieren als -> Sources Root.

    Ähnlich verfahren Sie mit test verzeichnis so: src/test/Java klicken Sie mit der rechten Maustaste auf Java verzeichnis und wählen Sie die Option Verzeichnis markieren als ->. Test Quellenstamm

oder:

  • Gehen Sie zu Ausführen -> Konfigurationen bearbeiten und entfernen Sie in Abschnitt JUnit Testkonfigurationen. Änderungen übernehmen. Versuchen Sie danach, Ihre Tests auszuführen. Neue Konfiguration sollte automatisch erstellt werden.

oder:

  • Gehen Sie zu Datei -> Projektstruktur, wählen Sie Module aus, wählen Sie dann Ihr geeignetes Modul aus und gehen Sie zur Registerkarte Pfade
    Überprüfen Sie die Optionen:
    Das Optionsfeld Modul zum Kompilieren des Ausgabepfads sollte ausgewählt werden. 

    Ausgabepfad sollte sich in Ihrem Projekt befinden. Auch der Test-Ausgabepfad sollte sich in Ihrem Projekt befinden. Zum Beispiel kann es ähnlich aussehen:
    Ausgabepfad: C:\Pfad\zu\Ihr\Modul\IhrModul \ Ziel\Klassen
    Test Ausgabepfad: C:\Pfad\zu\Ihr\Modul\IhrModul \ Ziel\Testklassen

    Ausgabepfade ausschließen sollte abgewählt sein.
33
Schakal

Dies kann auch passieren, wenn Ihr Testordner als separates Modul importiert wurde (ein kleines Quadrat wird auf dem Ordnersymbol in der Projektansicht angezeigt).
Entfernen Sie das Modul, indem Sie den Testordner in der Projektansicht auswählen und auf drücken DEL.
Dann starten Sie Ihren Test.
Wenn ein Popup-Dialogfeld mit der Fehlermeldung angezeigt wird, dass kein Modul ausgewählt ist, geben Sie Ihr Root-Modul in der Dropdown-Liste an.

14
Tobi

Ich hatte ein ähnliches Problem, nachdem ich ein neues IntelliJ-Projekt gestartet hatte. Ich habe festgestellt, dass der "Modulkompilierausgabepfad" für mein Modul nicht richtig angegeben wurde. Als ich den Pfad im "Kompilierausgabepfad" des Moduls der richtigen Position zugewiesen habe, wurde das Problem gelöst. Der Compile-Ausgabepfad wird in den Projekteinstellungen zugewiesen. Wählen Sie unter Module das betreffende Modul aus und wählen Sie die Registerkarte Pfade ...

Registerkarte "Pfade" in den Projekteinstellungen | Dialogfeld "Module"

 screenshot

... Ich habe die Compilerausgabe an einen Ordner namens "Ausgabe" gesendet, der sich im übergeordneten Projektordner befindet.

12
DStanton

In meinem Fall hatte ich alles andere an der richtigen Stelle, aber ich arbeitete an einer Java-Bibliothek mit kotlin . Ich habe gerade vergessen, das Plugin anzuwenden:

apply plugin: 'kotlin-Android'

Und jetzt funktioniert es wie erwartet.

9
crgarridos

In Android Studio 3.0 + werden UI-Tests manchmal als Komponententests interpretiert, und es wird nicht nach der Auswahl der Zielbereitstellung gefragt. Sie können zu Konfiguration bearbeiten gehen und es als Integrationstest markieren, und es würde funktionieren

7
Tushar Nallan

Ich hatte die gleiche Frage, als ich jar von Maven importierte und anschließend den Fehler empty-test-suite verursachte.

In meinem Fall lag es daran, dass der Maven die Moduldateien zurücksetzte. Was ich gelöst habe, indem ich meine Standardkonfiguration gelöscht habe:

  1. Öffnen Sie Projektstruktur mit shift-ctrl-alt-s Abkürzung

Screenshot of PModules Sources

  1. Sehen Sie sich Module> Quellen an und füllen Sie das Quellenpaket oder das Testpaket aus.
5
tyrantqiao

Dies geschieht auch, wenn Ihre Modul- und/oder Projekt-Jdk nicht richtig konfiguriert sind.

4
Maarten Dhondt

Reimport-Projekt oder -Modul kann das Problem lösen. Ich habe dieses Problem dadurch gelöst, dass der Paketname bei der Entwicklung umbenannt wurde. Der Ausgangspfad out und test ist jedoch der alte Pfad. Daher kann intellij die Klasse nicht vom alten Pfad aus finden .. Der einfachste Weg besteht darin, den Ausgangspfad und den Testausgabepfad zu korrigieren.

 Intellij module setting

4
Bejond

Ich hatte das gleiche Problem und der Cache neu aufgebaut/ungültig gemacht usw. funktionierte nicht. Scheint, als wäre das nur ein Fehler in Android Studio ...

Eine temporäre Lösung besteht darin, Ihre Unit-Tests einfach über die Befehlszeile auszuführen:

./gradlew test

Siehe: https://developer.Android.com/studio/test/command-line.html

3
Marius

Ich hatte das gleiche Problem (Android Studio 3.2 Canary 4) und habe die meisten Vorschläge aus anderen Antworten ausprobiert - ohne Erfolg. Beachten Sie, dass dies passiert ist, nachdem ich die Datei von test in den Ordner androidTest verschoben habe. Es wurde immer noch in Laufkonfigurationen als Test statt als instrumentierter Test gezeigt.

Ich habe am Ende eine neue Datei erstellt:

  1. Erstellen Sie eine neue instrumentierte Testklasse mit einem anderen Namen.
  2. Kopieren Sie den gesamten Code aus Ihrer Klasse.
  3. Starte es.
  4. Löschen Sie die alte Klasse.
  5. Benennen Sie die neue Klasse in den gewünschten Namen um.
3
Micer

Interessanterweise bin ich aus verschiedenen Gründen oft mit diesem Problem konfrontiert. Für z.Das Ungültigmachen des Cache und das Neustarten vonhat ebenfalls geholfen.

Zuletzt habe ich es korrigiert, indem ich meinen Ausgabepfad in Datei -> Projektstruktur -> Projekt -> Projekt-Compiler-Ausgabe korrigierte to:absolute_path_of_package/out

für z.B. :/ Benutzer/Zufälliger/myWorkspace/src/DummyProject/out

3
some random guy

Durch das Löschen von .idea und das erneute Importieren des SBT-Projekts wurde dieses Problem für mich behoben.

2
jhegedus

Ich hatte das gleiche Problem. In meinem Fall hatte ich einige Testklassen in einem Paket/Ordner außerhalb des Hauptordners. Wenn ich jedoch die Run-Konfiguration überprüfte, versuchte ich immer, nach Klassen im Hauptordner (und nicht in meinen Paketen außerhalb von main) zu suchen. Wenn dies der Fall ist, müssen Sie die Pakete entweder dorthin verschieben, wo die Run-Konfiguration zeigt. Oder ändern Sie die Laufkonfiguration so, dass sie auf Ihre Pakete verweist.

1
mykey

Ich habe alle Lösungen ausprobiert, aber keine davon hat geholfen. Am Ende starte ich test im Debug-Modus und .... es fing an zu arbeiten. Vielleicht wurde der Cache eines Maven gelöscht. Es ist schwer zu sagen. Es klappt. mvn test -X ausprobieren

1
radekpakula

Dies kann (mindestens einmal für mich;) nach der Installation der neuen Version von IntelliJ geschehen, und die IntelliJ-Plugins wurden noch nicht aktualisiert.

Möglicherweise müssen Sie den Check for updates… im IntelliJ-Hilfe-Menü manuell ausführen.

1
Peter Lamberg

Klicken Sie einfach mit der rechten Maustaste auf die Datei in den Projektfenstern und wählen Sie aus 

"Run YourTest ".

Alles beginnt jetzt in Ordnung, wahrscheinlich weil die fehlerhafte Laufkonfiguration neu aufgebaut wird.

1
WebComer

Dies liegt wahrscheinlich daran, dass der Ordner nicht als Testquelle festgelegt ist. Dies kann über Moduleinstellungen> Module erfolgen.

1
noego

Benötigt Ihr Test ein Android-Gerät (Emulator oder Hardware)?
Wenn dies der Fall ist, wird es als "instrumentierter Test" bezeichnet und befindet sich in "Modulname/src/androidTest/Java /".
Wenn dies nicht der Fall ist, wird dies als "Test der lokalen Einheit" bezeichnet und befindet sich in "Modulname/src/test/Java".

https://developer.Android.com/training/testing/start/index.html

Ich habe die gleiche Fehlermeldung erhalten, weil ich einen Test für lokale Einheiten geschrieben hatte, der jedoch für instrumentierte Tests in den Ordner gestellt wurde. Das Verschieben des lokalen Einheitentests in den Ordner "src/test/Java" hat das Problem behoben.

1
Patrick

In meinem Fall gab es ein Problem mit dem Testnamen :).

Wenn der Name war: dummyNameTest, dann wurden keine Tests gefunden, aber falls testDummyName, war alles in Ordnung

1
Inweo

In meinem Fall hat IntelliJ die Testquellen aus einem seltsamen Grund nicht zusammengestellt. Ich habe einfach die Build-Konfiguration geändert und das Maven-Ziel clean test-compile im Abschnitt Before launch hinzugefügt

1
vatbub

Bekam den gleichen Fehler. Mein Gerät war nicht mit Android Studio verbunden. Wenn ich mit Studio verbunden bin. Es klappt. Das löst mein Problem.

1
Aman Srii

Klicken Sie in Ihrer Maven-Projektstruktur src/main/Java mit der rechten Maustaste auf das Java-Verzeichnis und wählen Sie die Option Verzeichnis als -> Sources Root markieren

Ähnlich verhält es sich mit test verzeichnis so: src/test/Java klicken Sie mit der rechten Maustaste auf das Java-Verzeichnis und wählen Sie die Option Verzeichnis als -> Test Sources Root markieren

Für mich gearbeitet :-)

1
krishna Murari

In meinem Fall wurde das Problem behoben, indem ich in meinen build.gradle wechselte und änderte 

dependencies {
    testImplementation 'junit:junit:4.12'
}

zu 

dependencies {
    testCompile 'junit:junit:4.12'
}
1
bremen_matt

Für mich wurde das Projekt außerhalb des Projekts erstellt. Ich ändere nur den Pfad ... Um den Pfad zu ändern (ich benutze Mac).

  • Gehen Sie zu Datei -> Projektstruktur
  • Gehen Sie zu Modul auf der linken Seite.
  • Pfade auswählen, Optionsfeld auswählen (Kompilierpfad für Modul verwenden)
  • Geben Sie den Ausgabepfad und den Test-Ausgabepfad an, die sich in Ihrem Projekt befinden
  • Deaktivieren Sie "Ausgabepfade ausschließen".
  • Gehe zu Datei -> Klick auf Invalidate Cache und starte neu
0
Mukul Aggarwal

Wenn das Projekt ein Kompilierungsproblem hat, werden die Tests möglicherweise nicht ausgeführt ..__ Erstellen Sie das Projekt zunächst als Build -> Build Project .

0
swapnil

gelöst durch manuelle Ausführung der testClasses-Task vor dem Komponententest.

0
landerlyoung

Ich habe dieses Problem mit Ordnernamen und Pfaden behoben.

Mein Test fehlte aus irgendeinem Grund/Java/Ordner und IntelliJ hat das nicht gefallen.

also von ../test/com /.. nach ../test/Java/com/..

und es ist ok

0
Evgeni Atanasov

Für mich war es, weil mein Projekt in ein Verzeichnis außerhalb des Projekts kompiliert wurde. In Pfaden lauteten die Ausgabepfade\production\project_name und\test\project_name, wodurch sie in C:\production\project_name abgelegt wurden. Wenn ich sie auf den vollständigen Pfad des Projekts änderte, konnten meine Tests auf die Klassendateien zugreifen.

0
seharri

Markieren Sie Ihr Paket/Verzeichnis in Ihrer IntelliJ IDEA als Testquellen.

0
Luis Camargo

Dasselbe Problem hier mit IDEA 15.0.6, und nichts half, als ich das Paket umbenannte, in dem sich die Testklasse befand. Danach habe ich es wieder in seinen ursprünglichen Namen umbenannt, und es funktionierte immer noch, sodass die Umbenennungsaktion möglicherweise etwas gelöscht hat Zwischenspeicher.

Was für mich funktionierte, war ein Rechtsklick auf den Project folder -> Maven -> Generate Sources and Update Folders

0
jsmiao

Als Erstes müssen wir verstehen, warum dies geschieht und die Fehlermeldung ist klar:

Der Vorgang wurde mit dem Beendigungscode 1 .__ abgeschlossen. Klasse nicht gefunden: "edu.macalester.comp124.hw0.AreaTest" Leere Testsuite.

Dies geschieht also hauptsächlich dann, wenn nach dem Erstellen der Komponententestklasse die Methoden (Tests) einzeln ausgeführt werden, bevor sie auf Klassenebene ausgeführt werden. Das ist alles

0
Carlos Daniel

Ich hatte das gleiche Problem auch in meiner Umgebung (MacOS). Ich habe IntelliJ 2016 verwendet. Ich hatte ein Java-Bibliotheksprojekt (gradle). 

Was ich getan habe war

  1. Geöffnetes/exportiertes Projekt aus einer älteren IntelliJ-Version (wie IntelliJ14). Dies war erfolgreich und ich habe es mit der Erstellung des Projekts und durch Ausführen eines Testfalls überprüft.
  2. Dann habe ich das Projekt erneut über IntelliJ 2016 importiert ..__ Danach funktionierte es einwandfrei (Gebäude und Testfall laufen).
0
udayanga