2009-07-14 17 views

risposta

1

Se si esegue il debug di un singolo metodo in jUnit, i punti di interruzione iniziano a funzionare. Se un'intera classe o pacchetto è debug in jUnit, il debugger non funziona.

3

Se si esegue in modalità di debug, questo dovrebbe essere il comportamento predefinito di versioni successive di Eclipse.

+0

Interessante. Sembra solo che accada quando ho errori nei test di jUnit. – User1

+0

Ho aggiornato la domanda. – User1

+0

Dettagli importanti che hai aggiunto. Come invochi junit? –

0

È necessario selezionare Esegui -> Debug dal menu. Eclipse si fermerà quindi su eccezioni e punti di interruzione nel codice.

6

Dal punto di vista di debug è possibile filtrare esattamente quali eccezioni siete interessati.

Nei punti di interruzione vista c'è una "J!" pulsante. Si apre una finestra che consente di scegliere su quali eccezioni si desidera interrompere.

Se il problema si verifica solo quando JUnit esegue un test, è necessario assicurarsi di avviare i test in modalità di debug. Il pulsante Rerun in JUnit verrà eseguito in modalità "normale". Per eseguire i test nel debug, è possibile fare clic con il tasto destro del mouse sul file e selezionare "Debug as -> JUnit Test" dal menu.

+1

Grazie per l'intuizione. Sto facendo Debug come -> JUnit Test. Si ferma ai punti di interruzione, ma non alle eccezioni. Sembra che JUnit ingoia le eccezioni (forse con una sorta di blocco try/catch). Il codice è una sottoclasse di junit.framework.TestCase. L'eccezione è causata da "int i = 1/0;" per il test. – User1

+1

Posso sicuramente riprodurre il tuo problema. Non ho mai usato questo comportamento prima. Ho trovato il seguente commento nelle note sulla versione 3.5: gli sviluppatori che eseguono il debug delle applicazioni sulla macchina virtuale 1.6.0_14 di Sun dovrebbero essere consapevoli che i punti di interruzione non sono affidabili (ovvero non sospendere sempre l'esecuzione). Il problema si verifica su piattaforme Windows e Linux. A questo punto, sembra essere un problema con la VM piuttosto che con Eclipse. La soluzione alternativa è utilizzare la macchina virtuale 1.6.0_13. (bug 279137). – Aaron

+0

Il downgrade lo ha risolto da parte tua? Ho provato 1.6.0_13 e non ha cambiato nulla. Sono abbastanza sicuro che il downgrade sia in vigore, ma non so come verificarlo. – User1

3

Come ha detto Thorbjørn Ravn Andersen, è il comportamento predefinito da Eclipse Ganimede.
Se non è abilitato, goto
Window->Preferences
Java->Debug
[X] Suspend execution on uncaught exceptions

E 'molto utile ma può essere fastidioso, in modo da cercare di capire, qual è l'opzione migliore per voi.

Problemi correlati