2013-02-20 14 views
15

In eclissi, se eseguo un programma Java in modalità di debug senza punti di interruzione e se la JVM raggiunge NullPointerException, Eclipse metterà in risalto la linea di codice offendente, e mostra le variabili locali, ecc. L'esecuzione è in pausa. Posso valutare il codice utilizzando la scheda Visualizza e così via.Come eseguire il debug di test JUnit simili a un normale programma Java in Eclipse

Tuttavia, se eseguo un test JUnit in modalità di debug e jvm raggiunge NullPointerException, jvm non si interrompe e non ho la possibilità di vedere le variabili locali.

È possibile eseguire test JUnit in modo che la JVM si fermi automaticamente quando si preme NullPointerException, senza utilizzare i punti di interruzione?

Edit: Utilizzando JUnit 4 & Juno

+0

Penso che il modo giusto per dire questo, è come usare il debug post-mortem di eclipse all'interno dei test di JUnit. – Eddified

+3

Avete impostato un breakpoint di eccezione per 'java.lang.NullPointerException' o impostato un breakpoint sulla linea specificata da stacktrace? – beny23

+0

Ho trovato una domanda duplicata: http://stackoverflow.com/questions/13611711/junit-4-and-suspend-on-exception – Eddified

risposta

0

Eclipse si ferma quando l'eccezione che viene lanciata non è considerata e ti farebbe saltare fuori da main(). Tuttavia, quando si esegue con JUnit framework, tutte le eccezioni vengono catturate da JUnit, quindi Eclipse non si ferma.

due soluzioni vengono in mente:

  • set eccezione brekpoint fermarsi quando NPE è gettato
  • utilizzare traccia dello stack dell'eccezione riportata da JUnit e impostare il punto di interruzione sulla riga che genera l'eccezione (che è il uno preferisco).
0

Lo si può vedere sulla scheda JUnit, se si fa doppio clic sulla linea che ha un problema, andrai alla posizione in cui l'eccezione null-pointer è accaduto.

java.lang.NullPointerException  <--First line of the error 
at.com.myProject.MyClass.myMethod(MyClass.java:theLineOfMyCode) <-- the line that you should double-click 

Dopo aver effettuato questa operazione, verrai reindirizzato alla riga dell'errore.

+4

Sapevo tutto questo. La domanda è come mettere in pausa l'esecuzione della JVM nel punto dell'eccezione, non come trovare la posizione dell'eccezione. – Eddified

2
  1. un doppio click impostare un breakpoint

  2. modalità
  3. Usa Debug per eseguire in Eclipse

Hover su quella riga di codice, e quindi fare clic su step over o f6

Problemi correlati