2013-02-20 10 views
15

W środowisku Eclipse, jeśli uruchomię program Java w trybie debugowania bez punktów przerwania, a JVM osiągnie wyjątek NullPointerException, Eclipse z uprzejmością podświetli obrażającą linię kodu, i pokaż lokalne zmienne itp. Wykonanie jest wstrzymane. Potrafię ocenić kod za pomocą karty Wyświetlanie i tak dalej.Jak debugować testy JUnit podobne do zwykłego programu Java w środowisku Eclipse

Ale jeśli uruchomię test JUnit w trybie debugowania, a jvm osiągnie wyjątek NullPointerException, jvm nie zatrzyma się i nie będę miał okazji zobaczyć zmiennych lokalnych.

Czy można uruchomić testy JUnit, tak aby JVM zatrzymała się automatycznie po wykryciu wyjątku NullPointerException, bez użycia punktów przerwania?

Edit: Korzystanie JUnit 4 & Juno

+0

Myślę, że właściwą drogą do powiedzenia tego, jest to, jak używać debugowania pośmiertnego Eclipse w testach JUnit. – Eddified

+3

Czy ustawiono punkt przerwania wyjątku dla 'java.lang.NullPointerException' lub ustawiono punkt przerwania w linii określonej przez stacktrace? – beny23

+0

Znalazłem zduplikowane pytanie: http://stackoverflow.com/questions/13611711/junit-4-and-suspend-on-exception – Eddified

Odpowiedz

0

Eclipse zatrzymuje się, gdy Wyjątek, który jest wyrzucany, jest nieprzechwycony i spowodowałby wyjście z głównego(). Jednak podczas pracy z JUnit, wszystkie wyjątki są przechwytywane przez JUnit, więc Eclipse nie zatrzymuje się.

dwa rozwiązania przychodzą do głowy:

  • ustawionej wyjątków brekpoint przestać kiedy NPE jest wyrzucane
  • używać Wyjątkiem jest ślad stosu zgłoszoną przez JUnit i ustawić punkt przerwania na linii, która zgłasza wyjątek (to jeden wolę).
0

Widać to na karcie JUnit, jeśli klikniesz dwukrotnie na linii, która ma problem, to udać się do miejsca, w którym wyjątek null pointer stało się.

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

Po wykonaniu tej czynności zostaniesz przekierowany do linii błędu.

+4

Wiedziałem o tym wszystkim. Pytanie brzmi: jak zatrzymać wykonywanie JVM w punkcie wyjątku, a nie jak znaleźć położenie wyjątku. – Eddified

2
  1. Podwójne kliknięcie ustawia breakpoint

  2. tryb
  3. Zastosowanie Debug uruchomić w Eclipse

Hover na tej linii kodu, a następnie kliknij step over lub f6

Powiązane problemy