Ausführen eines einzelnen JUnit-Tests in Eclipse

85

Wenn ich eine Testsuite mit mehreren Tests habe und versuche, einen einzelnen Komponententest entweder über das Kontextmenü des Code-Editors oder über die JUnit-Ansicht auszuführen, scheint es darauf zu bestehen, immer die gesamte Suite und nicht die auszuführen Einzeltest. Gibt es eine Möglichkeit zum Deaktivieren, um dieses Verhalten zu ändern, sodass ich darum bitten kann, diesen und nur diesen Test auszuführen?

user14128
quelle
11
Es wäre schön, wenn Sie die beste Antwort auswählen würden, indem Sie die grüne Markierung neben der Antwort markieren.
Guerda

Antworten:

96

Entfalte im Paket-Explorer die Klasse. Es sollte Ihnen alle Methoden zeigen. Klicken Sie mit der rechten Maustaste auf die eine Methode, die Sie ausführen möchten, und wählen Sie dann im Kontextmenü Ausführen als -> JUnit aus (gerade mit Eclipse 3.4.1 getestet). Die Auswahl von "Ausführen" für einen einzelnen Eintrag in der JUnit-Ergebnisansicht, um einen Test erneut auszuführen, funktioniert auf die gleiche Weise.

Volker Stolz
quelle
3
Leider funktioniert dies nur für Testmethoden, die direkt in dieser Klasse implementiert sind. Es funktioniert nicht für geerbte @ Test-Methoden.
Christopher Barber
1
Beachten Sie, dass Sie anscheinend auf den Methodennamen klicken müssen. Durch Klicken in die Methode wird die gesamte Klasse ausgeführt. (Zumindest verhält es sich so für mich.)
Emragins
Es funktioniert nur mit diesem einen "Paket-Explorer", der mehr als unhandlich ist, wenn es darum geht, schnell eine Methode zu finden, die Sie testen können. Und selbst dann überspringt der Debugger die anderen Methoden - was zusätzliche Zeit in Anspruch nimmt. Es muss einen besseren Weg geben ...
Macilias
und es ist auch zerbrechlich ... jetzt hat Eclipse beschlossen, keine anderen Tests zu überspringen, wenn es so läuft :(
Macilias
26

Der schnellste Weg, den ich kenne:

  1. Drücken Sie Ctrl+Shift + (bewegt den Cursor zur aktuellen Methodendeklaration),
  2. Drücken Sie Alt+ Shift+ x(oder dzum Debuggen) und dann t(Hotkey für "Run JUnit Test"). ).
  3. Testergebnis prüfen,
  4. Drücken Sie Alt+ , um zur vorherigen Codezeile zurückzukehren.

Wenn Sie alle Tests ausführen möchten, können Sie die Schritte 1 und 4 überspringen.

Schnatterer
quelle
13

In Eclipse 3.5 können Sie dies umgehen, indem Sie den Testläufer auf JUnit 3 ändern. Dies funktioniert nur für JUnit 3-Tests, nicht für JUnit 4-Tests. Sie können den Testläufer folgendermaßen ändern:

  1. Klicken Sie mit der rechten Maustaste auf eine der Testmethoden im Gliederungs-Explorer
  2. Wählen Sie Ausführen als -> Konfigurationen ausführen
  3. Wählen Sie auf der Registerkarte "Test" die Option "Einzelnen Test ausführen".
  4. Wählen Sie in der Dropdown-Liste Test Runner die Option 'JUnit 3' aus.

Es kann auch in anderen Versionen funktionieren.

lucrussell
quelle
Guter Anruf! Das Ändern von "Test Runner" in "JUnit 3" im Dialogfeld "Laufkonfigurationen" hat in Eclipse 3.6.0 (Helios) für mich funktioniert. Jetzt kann ich eine einzelne Methode in einem JUnit-Test ausführen. FWIW, ich hatte noch nie ein Problem läuft einzelnen JUnit 3 oder 4 Testklassen .
Adam Monsen
Perfekt, das hat auch bei mir funktioniert. Die Antwort darüber stimmte nicht, obwohl es mehr positive Stimmen zu geben scheint.
Dreza
12

Dies ist in Eclipse Indigo mit JUnit 4.8.2 möglich. Klicken Sie mit der rechten Maustaste auf die Methode, die Sie einzeln testen möchten Outline, und wählen Sie sie aus Run As -> JUnit Test.

Sie können sogar selektiv mit der rechten Maustaste auf einen Testmethodennamen im Quellcode-Editor klicken und auswählen Run As -> Junit Test.

wulfgarpro
quelle
1
es scheint, würde diesen spezifischen Testfall testen. Danach wird es jedoch mit anderen Testfällen fortgesetzt.
lwpro2
@ lwpro2 Sie müssen JUnit 4 (Anmerkungen) verwenden, um einen einzelnen Testfall zu testen. JUnit 3 (TestCase erweitern) führt weiterhin alle zugehörigen Tests aus.
AnthonyW
1
wulfgar.pro Ich habe @ lwpro2 wissen lassen, dass Sie keinen einzigen Test ausführen können, wenn Sie Ihren JUnit-Test mit einem JUnit 4-Runner ausführen (weil Sie beispielsweise JUnit 4.8.2 verwenden) selbst testen. Sie müssen entweder einen JUnit 3-Runner verwenden oder Ihren Test in die Verwendung von Anmerkungen konvertieren.
AnthonyW
danke für die kommentare. Ich habe jedoch Junit4 mit SpringJunit4ClassRunner verwendet. Jedenfalls keine große Sache. Das Kommentieren der Anmerkung ist schnell.
lwpro2
Diese Antwort ist am einfachsten
Jackson Tale
9

Verwenden Sie nicht Strg+, F11sondern den Hotkey Alt+ Shift+ X-> T.
Dann führt Eclipse die aktuell geöffnete Datei als JUnit-Test aus. Die grüne Wiedergabetaste führt nur die zuletzt ausgewählte Ausführungskonfiguration aus.

Bei mir funktioniert es gut mit Alt+ Shift+ X-> T.

Guerda
quelle
Vielen Dank. Angenommen, Sie arbeiten an einer Klasse, die durch einen Komponententest getestet wird. Wie können Sie beim Ändern der Klasse den entsprechenden UnitTest ausführen, ohne das Fenster auf die UnitTest-Datei umzuschalten?
Bibstha
@bibstha Sie können Strg + 3 verwenden und dann "erneut ausführen" eingeben. Auf diese Weise können Sie den letzten JUnit-Testfall erneut ausführen. Unter Fenster-> Einstellungen-> Allgemein-> Tasten können Sie dieser Aktion eine eigene Verknüpfung zuweisen. Strg + Umschalt + F11 wäre meiner Meinung nach geeignet.
Guerda
9

Ich werde die anderen ergänzen, indem ich nur eine hochproduktive Tastatur einbinde, mit der Sie einen einzelnen Unit-Test (Methode) debuggen können.

Bewegen Sie den Cursor mit einem der beiden Methoden auf den Methodennamen

  • Ctrl+ Shift+ Upoder
  • Ctrl+ Shift+ Downoder
  • Ctrl+ Geben Sie odann den Namen der Methode ein

Sobald sich Ihr Cursor auf dem Methodennamen befindet (oder direkt davor):

  • Alt+ Shift+ D-> T(Debuggen)
  • Alt+ Shift+ X-> T(Ausführen)

Nachdem Sie den Test ausgeführt haben, können Sie zu dem Punkt zurückkehren, an dem sich Ihr Cursor befand:

Alt+Back

Sie erhalten fast REPL-ähnliches Verhalten durch:

Ctrl+ Shift+ Upund Alt+ Shift+ X-> Tund Alt+Back

Sie können auch schnell einen Haltepunkt festlegen:

Ctrl+ Shift+B

Adam Gent
quelle
3

Klicken Sie mit der rechten Maustaste auf den Namen der Testmethode in der Datei und wählen Sie "Ausführen" -> "Junit-Test". Ich mache es die ganze Zeit mit Kepler und JUnit 4.

Kyle Dyer
quelle
2

Ich hatte das gleiche Problem, das andere mit Eclipse 3.4.1 und JUnit 4 Test Runner hatten - ich konnte keinen einzelnen Test ausführen. Aber ich habe woanders einen Vorschlag gefunden, der das Problem gelöst hat. Meine Testklasse erweiterte immer noch junit.framework.TestCase. Als ich aufhörte, TestCase zu erweitern, funktionierte alles einwandfrei und ich konnte einzelne JUnit-Tests mit dem JUnit 4-Testläufer ausführen. Natürlich musste ich für JUnit 4-Annotationen statische Importe für die Assert-Methoden verwenden, aber das hatte ich bereits getan - ich hatte die TestCase-Vererbung einfach nicht entfernt.

Ghirschhorn
quelle
1

Wenn Sie viele Tests in mehr als einer Datei haben und nur die Tests in einer bestimmten Datei ausführen möchten, können Sie mit der rechten Maustaste auf diese Datei klicken und Ausführen als -> Junit-Test auswählen. Wenn Sie nur einen Test ausführen möchten, der in einer Datei mit vielen Tests enthalten ist, gehe ich davon aus (ich habe hier keine Eclipse installiert), dass in der Gliederungsansicht alle Testmethoden für eine Datei aufgelistet werden, und Sie werden dies wahrscheinlich können Klicken Sie mit der rechten Maustaste auf eine einzelne Testmethode und führen Sie sie als JUNit-Test aus.

Ich hoffe es hilft.

Tom
quelle
1

Nur eine Testmethode ausführen.
Entfalten Sie im (Paket-Explorer oder Projektexplorer) die Klasse. Es sollte Ihnen alle Methoden zeigen. Klicken Sie mit der rechten Maustaste auf die eine Methode, die Sie ausführen möchten, und wählen Sie dann im Kontextmenü Ausführen als -> JUnit aus.
Geben Sie hier die Bildbeschreibung ein

Danilo
quelle
0

Für mich funktioniert es auch nicht in Eclipse 3.4.2, obwohl es in früheren Versionen funktioniert hat (ich habe versucht, eine einzelne Methode aus dem Paket-Explorer und einen einzelnen Junit-Test aus der Junit-Ansicht auszuführen).


quelle
Das Ausführen einer einzelnen Methode / eines einzelnen Tests über den Paket-Explorer funktioniert in Eclipse 3.4.2 einwandfrei.
Volker Stolz
0

Ich stimme dem Punkt zu, dass 3.4.2 nicht mehr so ​​funktioniert wie in früheren Versionen. Bevor Sie in der JUnit-Ansicht mit der rechten Maustaste auf einen einzelnen Test in einer Gruppe von Tests klicken und genau diesen Test ausführen können. In der neuesten Version besteht es darauf, immer alle auszuführen. Zugegeben, die Ansicht führt den Test aus, auf den Sie zuerst geklickt haben, und gibt den Rest in einem Rollup mit dem Namen "Unrooted Tests" aus. Wenn jemand dies herausfindet, würde ich gerne wissen, wie man es umgeht.

ra9r
quelle
0

Wenn Sie einige der Kommentare hier lesen, scheinen Sie möglicherweise daran interessiert zu sein, die Tests für den Code auszuführen, den Sie während der Änderung ändern, ohne den Fokus auf den Code zu verlieren, an dem Sie arbeiten. Dafür gibt es ein Eclipse-Plugin. Siehe unendlich .

unigeek
quelle