2009-07-14 6 views
12

Gibt es eine Möglichkeit, Eclipse im debug-Modus für jUnit bei nicht abgefangenen Exceptions zu unterbrechen? Eclipse bricht ab, wenn main() ausgeführt wird. Gibt es einen Befehlszeilenschalter, den ich verwenden kann?Break on Exception in Eclipse mit jUnit

Dank

Antwort

1

Wenn Sie eine einzelne Methode in jUnit debuggen, beginnen die Haltepunkte zu arbeiten. Wenn eine gesamte Klasse oder ein Paket in jUnit debuggt wird, funktioniert der Debugger nicht.

3

Wenn Sie im Debug-Modus ausführen, soll dies das Standardverhalten von späteren Versionen von Eclipse sein.

+0

Interessant. Es scheint nur zu passieren, wenn ich in jUnit-Tests Fehler habe. – User1

+0

Ich habe die Frage aktualisiert. – User1

+0

Wichtiges Detail, das Sie hinzugefügt haben. Wie rufen Sie Junit an? –

0

Sie müssen aus dem Menü Ausführen -> Debuggen auswählen. Eclipse stoppt dann an Ausnahmen und Breakpoints in Ihrem Code.

6

Von der Debug-Perspektive können Sie filtern genau, welche Ausnahmen Sie interessiert sind.

In den einzelnen Stützpunkten sehen gibt es ein „J“ Taste. Dies öffnet ein Fenster, in dem Sie auswählen können, welche Ausnahmen Sie unterbrechen möchten.

Wenn das Problem nur bei JUnit-Tests auftritt, müssen Sie sicherstellen, dass Sie die Tests im Debug-Modus starten. Die Rerun-Schaltfläche in der JUnit wird im "normalen" Modus ausgeführt. Um die Tests im Debug auszuführen, klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie "Debug als -> JUnit Test" aus dem Menü.

+1

Danke für die Einsicht. Ich mache Debug als -> JUnit Test. Es stoppt an Haltepunkten, aber nicht an Ausnahmen. Es scheint, dass JUnit die Ausnahmen verschluckt (vielleicht mit einer Art von try/catch-Block). Der Code ist eine Unterklasse von junit.framework.TestCase. Die Ausnahme wird verursacht durch "int i = 1/0;" zum Prüfen. – User1

+1

Ich kann Ihr Problem definitiv reproduzieren. Ich habe dieses Verhalten früher nie gehabt. Ich habe den folgenden Kommentar in den Versionshinweisen zu 3.5 gefunden: Entwickler, die Anwendungen auf der virtuellen Maschine Sun 1.6.0_14 debuggen, sollten sich bewusst sein, dass Breakpoints unzuverlässig sind (d. H. Die Ausführung nicht immer aussetzt). Das Problem tritt auf Windows- und Linux-Plattformen auf. An dieser Stelle scheint es eher ein Problem mit der VM als mit Eclipse zu geben. Die Problemumgehung besteht darin, die virtuelle Maschine 1.6.0_13 zu verwenden. (Fehler 279137). – Aaron

+0

Haben Sie das Downgrade auf Ihrer Seite behoben? Ich habe versucht, 1.6.0_13 und es hat nichts geändert. Ich bin mir ziemlich sicher, dass das Downgrade in Kraft ist, aber nicht sicher ist, wie es überprüft wird. – User1

3

Wie Thorbjørn Ravn Andersen sagte, ist dies das Standardverhalten seit Eclipse Ganymed.
Wenn es nicht aktiviert ist, gehe zu
Window->Preferences
Java->Debug
[X] Suspend execution on uncaught exceptions

Es ist sehr nützlich, aber es kann ärgerlich sein, so versuchen, herauszufinden, was die beste Option für Sie.