2013-01-31 24 views
5

Sto scrivendo alcuni test di unità in eclissi che prevedono l'emissione di eccezioni.JUnit Eclipse - Mostra traccia stack in caso di successo

Mi chiedo se sia disponibile un'opzione per visualizzare lo stack-trace quando passa un test, sarebbe utile quando si scrive il test per la prima volta per verificare se l'eccezione è stata generata realmente a causa del caso in cui si è test.

grazie!

risposta

3

Non dovresti aver bisogno di farlo.

Utilizzare la @Test annotazioni con un argomento expected:

@Test(expected=MyAppException.class) 

Se il test non non generare l'eccezione è il fallimento del test.

Dovrebbe essere presente un'opzione di visualizzazione Eclipse per mostrare l'output di registrazione di test, ma in generale, la registrazione esplicita dai test non è utile. Puoi anche eseguire il debug del test se non ti fidi delle annotazioni JUnit.

+1

@carrizo se vuoi vedere anche stacktrace sull'output della console, potresti circondare il codice di questo test con try-catch e print stack trace da lì, ma non dimenticare di propagare l'eccezione fino a –

+0

Sì, è quello che sto facendo ma ero cercare un'opzione per farlo senza dover scrivere un try catch per ogni test. Grazie comunque! :) – carrizo

+0

@carrizo Ma qual è l'obiettivo? Non ti fidi che JUnit funzioni? –

1

Perché non inserire le istruzioni System.out.print() all'interno del blocco catch del test? Non sono sicuro in che altro modo si voglia visualizzare l'output di un test perché in genere sono costruiti per essere silenziosi quando ci riescono, visto che ce ne sono così tanti.

Hai mai pensato di utilizzare log4j e log.debug()?

+0

In realtà proverò più tardi ad estendere l'annotazione JUnit o qualcosa del genere per abilitarlo, è un problema dover rilevare eccezioni, loggare e lanciarlo di nuovo per ogni test che scrivi:/ – carrizo

+0

Ci siamo imbattuti nello stesso problema testando il nostro gestione delle eccezioni in un sistema molti anni fa. Non abbiamo mai trovato una buona soluzione, ma ricordo di aver sentito versioni successive di JUnit che fornivano supporto per questo. Dovrei esaminare i documenti JUnit. –

Problemi correlati