Como identificar quais linhas de código participou de uma execução específica de um programa Java?
-
08-07-2019 - |
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
.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.
(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 ...