Mein Java-Test hat mit Eclipse gut funktioniert. Wenn ich den Test jetzt über das Ausführungsmenü neu starte, wird folgende Meldung angezeigt:
No tests found with test runner 'JUnit 4'
In der .classpath
Datei habe ich alle jar
Dateien und am Ende habe ich:
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Wie kann ich diesen Fehler beheben und die Tests erneut ausführen?
Antworten:
das ist mir gerade passiert. Das Neuerstellen oder Neustarten von Eclipse hat nicht geholfen.
Ich habe es gelöst, indem ich eine der Testmethoden umbenannt habe, um mit "test ..." (JUnit3-Stil) zu beginnen, und dann wurden alle Tests gefunden. Ich habe es wieder in das umbenannt, was es vorher war, und es funktioniert immer noch.
quelle
testQuotes
zusammen mit anderen Methoden, die nicht mit Test beginnen, aber ich bekomme immer noch keine Tests gefunden Fehlerjunit.framework.TestCase
, und meine Methoden mussten mit "test" beginnen. Anstatt zu erweiternTestCase
, habe ich einen Import hinzugefügt:import static org.junit.Assert.*;
und ich kann meine Methoden so benennen, wie ich möchte. Bizarr ...Wenn wir diese Fehler erhalten, scheint Eclipse nur verwirrt zu sein. Starten Sie Eclipse neu, aktualisieren Sie das Projekt, bereinigen Sie es, lassen Sie Eclipse es neu erstellen und versuchen Sie es erneut. Meistens funktioniert das wie ein Zauber.
quelle
Wählen Sie im Kontextmenü Ihres 'Test'-Verzeichnisses' Erstellungspfad '->' Als Quellordner verwenden '. Eclipse sollte Ihre unitTests.java-Dateien als Quelldateien sehen. Die Warnung "Keine JUnit-Tests gefunden" tritt auf, da sich in Ihrem "Build" -Verzeichnis keine unitTests.class-Dateien befinden
quelle
Überprüfen Sie, ob Ihre Testklasse "TestCase" erweitert. Wenn ja, entfernen Sie diese Klausel. Ihre Klasse muss nicht von der "TestCase" -Klasse erweitert werden. Es sind die meisten Fälle, die ich getroffen habe.
Der folgende TestCase sollte in Ordnung sein.
quelle
Ich hatte das gleiche Problem und habe es an schlechten Beispielen im Web und in den Interna von junit getestet. Lassen Sie Ihre Klasse TestCase grundsätzlich nicht erweitern, wie einige Beispiele für Junit 4.x zeigen. Verwenden Sie eine Namenskonvention Test oder wenn Sie eine Anmerkung haben möchten, können Sie @RunWith (JUnit4.class) verwenden.
Wenn Sie Zugriff auf Assert-Methoden benötigen, erweitern Sie Assert oder verwenden Sie statische Importe.
Wenn Ihre Klasse TestCase erweitert, wird sie selbst bei Verwendung von Junit 4 Runner als 3 ausgeführt. Dies liegt daran, dass im Initialisierungscode Folgendes erkannt wird:
Siehe JUnit3Builder und die Zeilen:
Dies gibt true zurück und der Test auf Junit4-Kompatibilität wird nicht versucht.
quelle
@RunWith(JUnit4)
"GroovyTestCase" kommentiert und erweitert. Ohne dass@RunWith(JUnit4)
ich vor den gleichen Problemen stehe.Versuchen Sie es mit Hinzufügen
@ Test über der Methode für den Test wie folgt
quelle
Eine weitere mögliche Lösung, die ich in den Ring werfen werde: Ich konnte die Testklasse weder über das Editorfenster noch über den Paket-Explorer ausführen, sondern mit der rechten Maustaste auf den Klassennamen in der Gliederungsansicht klicken und Als JUnit ausführen auswählen Test hat funktioniert ... Go figure!
quelle
Keine Testanzüge in JUnit4. Verwenden Sie stattdessen Anmerkungen oder alte JUnit3-Namenskonventionen.
Beispiel:
quelle
Das ist mir auch passiert. Ich habe versucht, Eclipse neu zu starten, und meinen Testmethoden Tests vorangestellt. Beides hat nicht funktioniert.
Der folgende Schritt hat funktioniert: Ändern Sie alle in @BeforeClass und @AfterClass vorhandenen Testmethoden in statische Methoden.
dh wenn Sie Ihre Testmethode im folgenden Format haben:
dann ändern Sie es zu:
Das hat bei mir funktioniert.
quelle
Ich habe die Antwort herausgefunden:
Ich habe diesen Fehler erhalten, als ich den Test eigenständig von Eclipse ausgeführt habe (klicken Sie mit der rechten Maustaste auf die Methode und wählen Sie, ob sie als Junit-Test ausgeführt werden soll).
Als ich die komplette Klasse als Junit-Test ausgeführt habe, wurde der Test korrekt mit den Parametern ausgeführt.
quelle
Wenn ich auf dieses Problem stoße, bearbeite ich einfach die Datei und speichere sie ... funktioniert wie ein Zauber
quelle
Mein Problem war, dass die Deklaration
import org.junit.Test;
verschwunden ist (oder nicht hinzugefügt wurde?). Nachdem ich es hinzugefügt hatte, musste ich eine weitereimport
Deklaration entfernen (Eclipse gibt Ihnen einen Hinweis darauf, welche) und alles begann wieder zu funktionieren.quelle
Sehr spät, aber was das Problem für mich löste, war, dass meine Testmethodennamen alle mit Großbuchstaben begannen: "public void Test". Das t Kleinbuchstaben funktioniert.
quelle
Ich habe die Lösung von Germán ausprobiert. Es hat für alle Methoden meiner Klasse funktioniert, aber ich habe viele Klassen in meinem Projekt.
Also habe ich versucht, aus dem Erstellungspfad zu entfernen und ihn dann erneut hinzuzufügen. Es hat perfekt funktioniert.
Ich hoffe es hilft.
quelle
Sechs Jahre später ... und es gibt immer noch Probleme mit Eclipse und gelegentlich keine JUnits zu finden.
In meinem Eclipse Mars 2 habe ich festgestellt, dass von git gezogene Testklassen nicht erkannt werden, wenn
@Test
die Datei mehr als 9 oder 10 Anmerkungen enthält. Ich muss zusätzliche Tests auskommentieren, die Testklasse ausführen, sie dann auskommentieren und die Klasse erneut ausführen. Stelle dir das vor...quelle
Möglicherweise war Ihre JUnit-Startkonfiguration für eine einzelne Testklasse bestimmt, und Sie haben diese Konfiguration irgendwie geändert, um "alle Tests in einem Quellordner, Paket oder Projekt auszuführen".
Dies könnte jedoch die Fehlermeldung "Keine Tests mit Testläufer 'JUnit 4' gefunden" auslösen.
Oder Sie haben eine Änderung in Ihrer Testklasse vorgenommen und die
@Test
Anmerkung entfernt.Siehe diese Wiki-Seite .
quelle
toto.lolo.Testrunner
und nichttoto.lolo.testrunner
('T')Das gleiche Problem trat auch beim Ausführen des JUnit-Tests auf. Ich habe dieses Problem behoben, indem ich die Anmerkung @Test direkt über der Haupttestfunktion platziert habe.
quelle
Was meinen Fall behebt, ähnelt der Antwort von @ JamesG: Ich habe Eclipse neu gestartet, das Projekt neu erstellt und aktualisiert. ABER bevor ich etwas davon tat, schloss ich zuerst das Projekt (Rechtsklick auf Projekt im Paket-Explorer -> Projekt schließen) und öffnete es dann erneut. Dann hat es funktioniert.
Eine Problemumgehungslösung, die ich gefunden habe, bevor ich die ultimative Lösung gefunden habe, die ich gerade beschrieben habe: Kopieren Sie die Testklasse und führen Sie die Testklasse als JUnit aus.
quelle
Überprüfen Sie, ob der Ordner, in dem sich Ihre Tests befinden, ein Quellordner ist. Wenn nicht - Rechtsklick und als Quellordner verwenden.
quelle
Schließen und öffnen Sie das Projekt, das für mich funktioniert hat.
quelle
Es besteht eine weitere Möglichkeit, dass Sie den Junit-Test von einer niedrigeren Version (z. B. Junit 3) auf Junit 4 geändert haben. Befolgen Sie dazu die folgenden Schritte: -
quelle
Fügen Sie zusätzlich
@Test
zu Ihrem Test hinzu.Bewegen Sie den Mauszeiger zur Anmerkung.
Wählte 'Junit 4-Bibliothek zum Klassenpfad hinzufügen'
quelle
Basiert Ihr Eclipse-Projekt auf Maven? In diesem Fall müssen Sie möglicherweise die m2eclipse-Version aktualisieren.
Von hier aus: http://nuin.blogspot.com/2009/07/m2eclipse-and-junit4-no-tests-found.html
quelle
Das ist mir auch passiert. Ich habe festgestellt, dass ich in Eclipse keine neue Java-Klassendatei erstellt habe und deshalb nicht kompiliert wurde. Versuchen Sie, Ihren Code in eine Java-Klassendatei zu kopieren, falls dieser noch nicht vorhanden ist, und kompilieren Sie ihn dann.
quelle
Ich fand heraus, dass Eclipse nur dann Tests im JUnit 3-Stil durchführt, wenn sich Ihre Testklasse von erstreckt
TestCase
. Wenn Sie die Vererbung entfernen, haben die Anmerkungen für mich funktioniert.Beachten Sie, dass Sie alle erforderlichen
assert*
Methoden wie statisch importieren müssenimport static org.junit.Assert.*
.quelle
Ich musste ein mvn clean in der Kommandozeile machen und dann project-> clean in eclipse. Ich habe die Klasse vorher umbenannt und dann wieder umbenannt, aber ich bezweifle, dass das geholfen hat.
quelle
Ich verwende Eclipse auch mit Maven (m2e 1.4). Die Tests liefen mit Maven, aber nicht mit Eclipse ... auch nach mehrmaliger Anwendung von
Maven>Update project
.Meine Lösung bestand darin, dem von m2e generierten .classpath einige Zeilen hinzuzufügen. Die Linien kleben jetzt.
quelle
Ich habe dieses Problem von Zeit zu Zeit. Die Lösung, die das Problem für mich am meisten löst, besteht darin, den JUnit-Test über Ausführungskonfigurationen auszuführen ... um sicherzustellen, dass JUnit 4 als Testläufer festgelegt ist.
Im Allgemeinen tritt dieses Problem auf, wenn versucht wird, den Test als ... Junit-Test über das Kontextmenü im Paket-Explorer auszuführen. Wenn Sie mit der rechten Maustaste auf den Code für den Test klicken, den Sie ausführen möchten, und anstatt Ausführen als ... Junit-Test auswählen, wählen Sie Konfigurationen ausführen aus. Stellen Sie sicher, dass Projekt, Testklasse und Testläufer korrekt eingestellt sind. Klicken Sie auf Übernehmen und dann auf Ausführen arbeitet die ganze Zeit für mich.
quelle
Ich habe angefangen, in meinem Job mit Selenium und Eclipse zu arbeiten, und ich habe meinen ersten automatisierten Test durchgeführt. Ich habe aus den Codes @Before, @Test und @After Notizen gelöscht und hatte das Problem "Keine Tests mit Testrunner junit4 gefunden". .
Meine Lösung bestand einfach darin, die Notizen @Before, @Test und @After erneut hinzuzufügen, und damit funktionierte mein Skript. Es ist wichtig, dies nicht aus dem Code zu löschen.
Dies ist ein einfacher Test, bei dem Google nach etwas sucht:
quelle
Bei Verwendung von ScalaIDE (3.0.4-2.11-20140723-2253-Typesafe) hatte ich ein ähnliches Problem mit dem
Right Click Scala Test Class-> Run As -> Scala Junit Test
Kontextmenü.Ich habe versucht, die Klasse zu bearbeiten (aber nicht wegen eines Kompilierungsfehlers), zu bereinigen, das Projekt zu schließen und Eclipse zu schließen. Keiner von diesen hat das Kontextmenü für Klassen wiederhergestellt, die zuvor gut funktioniert hatten. Die Testklassen verwenden nicht die
@Test
Annotation, sondern die@RunWith(classOf[JUnitRunner])
Annotation am oberen Rand der Klasse mit ScalaTest-Code.Als ich versuchte,
Scala Junit Test
direkt aus dem Starteditor für die Konfiguration der Konfiguration auszuwählen, erhielt ich den Dialog aus der Frage. Die Antwort von Footix29 war der Schlüssel für mich.Ich bemerkte, dass meine Klassen im Verzeichnis / bin, obwohl ich mein Projekt einige Male bereinigt hatte, seit einiger Zeit nicht mehr neu erstellt wurden.
So kam ich zum Kontextmenü zurück und konnte
Scala Junit Test
s erneut ausführen :manually
bereinigte die Klassen durch Löschen des/bin/<package dir>*
Via-ExplorersProject -> Clean
das Projekt zusammen mit einem vollständigen UmbauIch vermute, dass eine Klassenbearbeitung im Allgemeinen in der Lage ist, einen gespeicherten Status von Eclipse zu bereinigen und wieder in Gang zu bringen. In meinem Fall waren alle zuvor von mir ausprobierten Arbeiterklassen gescheitert, sodass der
manual
saubere Schritt genau der Hammer war, den ich brauchte. Es sollten jedoch auch andere Tricks funktionieren, die sich auf das Eclipse-Konzept des Klassenpfads / Build-Status auswirken.Außerdem denke ich, dass dieses Verhalten teilweise durch den Versuch ausgelöst wurde, eine Scala-Klasse durch Umbenennen (an der die Scala Eclipse-IDE scheiße ist) umzugestalten, wobei die gesamte Bereinigung nach der ersten Dateiänderung manuell erfolgt. Es gab keine Build-Fehler, aber es gab auch keine Warnungen, die ich erwartet hatte, was bedeutet, dass definitiv etwas in den Build-Statusinformationen von Eclipse steckt.
quelle