如何识别哪些代码行参与了Java程序的特定执行?

问题描述 投票:5回答:3

假设我在IDE中有一个Java程序(在本例中为Eclipse)。假设我现在执行程序并在某些时候终止它或它自然结束。

是否有方便的方法来确定哪些行至少执行一次以及哪些行没有执行(例如,异常处理或未达到的条件?)

收集此信息的一种手动方式是不断调试并维护一组我们至少通过一次的行。但是,是否有一些工具或分析器已经这样做了?

编辑:只是为了澄清:我需要能够以编程方式访问此信息,而不一定是从JUnit测试。

java eclipse profiling code-coverage tracing
3个回答
8
投票

eclemma将是一个良好的开端:代码覆盖工具将允许覆盖会话记录您正在寻找的信息。

alt text (来源:eclemma.org


3
投票

您所询问的内容称为“覆盖范围”。有几种工具可以衡量,其中一些工具可以集成到Eclipse中。我使用过jcoverage并且它有效(我相信它有一个免费试用期,之后你必须购买它)。我没用过它,但你也可以试试Coverlipse


2
投票

如果我正确理解了这个问题,你需要的不仅仅是标准的堆栈跟踪数据,而是你不想用log4j调试语句手动设置你的代码。

我唯一能想到的是添加某种字节码跟踪。请参阅Instrumenting Java bytecode。这篇文章引用了Cobertura,我没有使用过,但听起来像你需要的......

© www.soinside.com 2019 - 2024. All rights reserved.