2012-08-06 21 views
21

Come è possibile profilare un test JUnit, preferibilmente con il supporto integrato di Eclipse? Sto cercando di farlo utilizzando VisualVM ma a quanto pare non può essere fatto.Profilo JUnit in Eclipse Indigo utilizzando VisualVM

sto utilizzando Windows 7 x64, Eclipse Indigo, JDK 1.6, jre-J9 e JUnit 3 (ho potuto usare v.4)

+0

Qual è il tuo problema quando usi VisualVM? L'ho usato prima, e ha funzionato. – Axel

+0

@Axel Posso usarlo per avviare i programmi java (con il metodo main) ma quando provo a profilare un JUnit (selezionando VisualVM come launcher invece di Eclipse JUnit Launcher) ricevo una finestra di messaggio di errore NullPointerException e il test viene eseguito su Eclipse . – rnunes

+0

@ Axel come hai fatto? –

risposta

30

È possibile utilizzare jvisualvm (%JAVA_HOME%/bin/jvisualvm.exe), ma per utilizzarlo con JUnit , è necessario modificare leggermente la configurazione della corsa.

  1. Eseguire i test JUnit una volta, per creare la configurazione di esecuzione
  2. modificare la configurazione Run (Run->Run Configurations...)
  3. Nella scheda Test selezionare la casella 'Keep JUnit in esecuzione dopo la prova in fase di debug'
  4. Rerun il test (con Debug). Questo eseguirà i test, ma, soprattutto, lascia la JVM in giro, in modo da poterla allegare usando JVisualVM.

Se si desidera profilare una sezione specifica del test, l'impostazione di un punto di interruzione prima e dopo consente di avviare/interrompere la creazione del profilo.

+0

Mi ci vuole per sempre per eseguire un test JUnit Spring con SpringJUnit4ClassRunner. Selezionando questa opzione si ovvia a tutto ciò. Grazie! – IcedDante

+1

Forse mi manca qualcosa, ma trovo che rieseguire i test avvia una VM diversa (non quella monitorata), quindi nessun dato viene raccolto. Come soluzione temporanea, inserisco un breakpoint nell'inizializzazione costruttore/@ Parametri, quindi posso collegare il monitor prima che venga eseguito il test. – Javier

+0

Grazie per il suggerimento. Ok, il tipo di soluzione funziona ... Aprite jvisualvm e poi "Sample" il RemoteTestRunner, e potete ottenere un feedback significativo dall'esperienza. Ma rispetto al test Junit del profilo di Nebeans, questo approccio non è in competizione. A seconda dell'omplessità del test unitario, i volumi di dati che si fanno per metterlo in risalto, a meno che non si trovi un plugin decente per questo, mi piacerebbe avere netbeans vanilla e farlo fare l'analisi. Se non vale la pena investire nel tempo, allora l'approccio di campionamento visuale è ok. – 99Sono

7

JProfiler ha un plug-in di eclissi che supporta le configurazioni di esecuzione JUnit. Vedi here per una trasmissione dello schermo sull'integrazione IDE di Eclipse.

Per mantenere attiva la JVM al termine del test (in modo da poter analizzare i risultati), modificare le impostazioni di creazione del profilo e selezionare "Mantieni VM in vita" nella scheda "Varie".

Disclaimer: La mia azienda sviluppa JProfiler.

+0

grazie. questo era esattamente quello che stavo cercando. – user643011

+0

Esiste un periodo di prova o devi acquistarlo in anticipo? – Thomas

+0

Esiste un periodo di valutazione di 10 giorni al momento del download, ma può anche avere più tempo. –

Problemi correlati