2013-01-31 5 views
5

Ich schreibe einige Komponententests in Eclipse, bei denen Ausnahmen erwartet werden.JUnit Eclipse - Anzeige der Stack-Verfolgung bei Erfolg

Ich frage mich, ob es eine Option gibt, die Stack-Trace anzuzeigen, wenn ein Test bestanden wird, wäre es nützlich, wenn Sie zum ersten Mal Test schreiben, um zu überprüfen, ob die Ausnahme tatsächlich ausgelöst wird testen.

danke!

Antwort

3

Sie sollten das nicht tun müssen.

Verwenden Sie die @Test Anmerkung mit einem expected Argument:

@Test(expected=MyAppException.class) 

Wenn der Test funktioniert nicht die Ausnahme werfen es ein Testfehler ist.

Es sollte eine Eclipse-Ansichtsoption geben, um die Testprotokollausgabe anzuzeigen, aber im Allgemeinen ist eine explizite Protokollierung von Tests nicht sinnvoll. Sie können Ihren Test auch debuggen, wenn Sie den JUnit-Annotationen nicht vertrauen.

+1

@carrizo Wenn Sie zusätzlich Stacktrace auf der Konsolenausgabe sehen möchten, können Sie den Testcode mit try-catch und print stack trace von dort umgeben, aber vergessen Sie nicht, die Ausnahme zu propagieren –

+0

Ja, das mache ich, aber ich war es Suche nach einer Option, um es zu tun, ohne einen Test Catch für jeden Test schreiben zu müssen. Danke trotzdem! :) – carrizo

+0

@carrizo Aber was ist das Ziel? Vertrauen Sie nicht, dass JUnit funktioniert? –

1

Warum nicht System.out.print() Anweisungen in den catch-Block des Tests setzen? Ich bin mir nicht sicher, wie Sie die Ausgabe eines Tests sonst noch anzeigen möchten, weil sie normalerweise so gebaut sind, dass sie still sind, wenn sie erfolgreich sind, da es so viele gibt.

Haben Sie darüber nachgedacht, log4j und log.debug() zu verwenden?

+0

Eigentlich werde ich später versuchen, die JUnit Annotation oder etwas zu erweitern, um dies zu ermöglichen, ist es ein Schmerz, Ausnahmen zu fangen, zu protokollieren und für jeden Test, den Sie schreiben erneut zu werfen:/ – carrizo

+0

Wir stießen auf das gleiche Problem testen unsere Ausnahmebehandlung in einem System vor vielen Jahren. Wir haben nie eine gute Lösung gefunden, aber ich erinnere mich, dass ich spätere Versionen von JUnit gehört habe, die dies unterstützen. Ich müsste die JUnit-Dokumente durchsehen. –

Verwandte Themen