Come identificare quali righe di codice hanno partecipato a un'esecuzione specifica di un programma Java?

StackOverflow https://stackoverflow.com/questions/289270

Domanda

Supponi di avere un programma Java all'interno di un IDE (Eclipse in questo caso). Supponi ora che eseguo il programma e ad un certo punto lo concluda o termina naturalmente.

Esiste un conveniente modo per determinare quali linee sono state eseguite almeno una volta e quali no (ad es. gestione delle eccezioni o condizioni che non sono state raggiunte?)

Un modo manuale per raccogliere queste informazioni sarebbe quello di fare un passo costante con il debug e mantenere un insieme di linee in cui siamo passati almeno una volta. Tuttavia, c'è qualche strumento o profiler che lo fa già?

Modifica: solo per chiarimenti: devo essere in grado di accedere a queste informazioni a livello di codice e non necessariamente da un test JUnit.

È stato utile?

Soluzione

eclemma sarebbe un buon inizio: uno strumento di copertura del codice consentirebbe a una sessione di copertura di registrare le informazioni che stai cercando.

 alt text
(fonte: eclemma.org )

Altri suggerimenti

Quello che stai chiedendo si chiama " copertura " ;. Esistono diversi strumenti che lo misurano, alcuni dei quali si integrano in Eclipse. Ho usato jcoverage e funziona (credo ha un periodo di prova gratuito, dopo di che dovresti acquistarlo). Non l'ho usato, ma potresti anche provare Coverlipse .

Se capisco correttamente la domanda, vuoi più dei dati stacktrace standard ma non vuoi strumentare manualmente il tuo codice con, diciamo, le dichiarazioni di debug log4j.

L'unica cosa che mi viene in mente è aggiungere una sorta di traccia del bytecode. Fare riferimento a Instrumenting Java bytecode . L'articolo fa riferimento a Cobertura che non ho usato ma sembra quello di cui hai bisogno ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top