Como identificar quais linhas de código participou de uma execução específica de um programa Java?

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

Pergunta

Suponha que eu tenho um programa Java dentro de uma IDE (Eclipse, neste caso). Suponha agora que eu executar o programa e, em algum momento denunciá-lo ou ele termina naturalmente.

Existe um conveniente maneira de determinar quais linhas executado pelo menos uma vez e quais fez não (por exemplo, a manipulação ou condições que não foram alcançados? Exceção)

Uma maneira manual para recolher essa informação seria constantemente passo com a depuração e manter um conjunto de linhas onde passaram pelo menos uma vez. No entanto, existe alguma ferramenta ou perfil que já faz isso?

Edit: Só para esclarecer: eu preciso ser capaz de acessar essas informações por meio de programação e não necessariamente de um teste JUnit

.
Foi útil?

Solução

eclemma seria um bom começo: uma ferramenta de cobertura de código permitiria uma sessão de cobertura para registrar as informações que você está procurando.

text alt
(fonte: eclemma.org )

Outras dicas

O que você está perguntando sobre é chamado de "cobertura". Existem várias ferramentas que medem isso, alguns dos quais integrar em Eclipse. Eu usei jcoverage e funciona (creio que tem um período de teste gratuito, após o qual você tem que comprá-lo). Eu não usei, mas você também pode tentar Coverlipse .

Se eu entendi a pergunta corretamente, você quer mais do que os dados Stacktrace padrão, mas você não quer instrumento manualmente o código com, digamos, declarações log4j depuração.

A única coisa que posso pensar é adicionar algum tipo de rastreamento de bytecode. Consulte instrumentação Java bytecode . As referências de artigos Cobertura que eu não usei, mas soa como o que você precisa ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top