2009-10-05 179 views
16

Java中是否有任何这样的代码覆盖工具可以为程序提供不同的路径。基本上这个想法是确保在执行期间覆盖所有循环和嵌套循环。这是为了能够确定代码库中的所有循环是否至少通过一次迭代来执行。Java中的代码覆盖工具

+0

的重复http://stackoverflow.com/questions/39329/what-is-your-favourite-code-coverage-tools-free-非 - 免费 – 2009-10-05 06:05:06

+8

不,不是。他要求*路径*覆盖工具。 有关定义,请参阅http://en.wikipedia.org/wiki/Code_coverage。 提供给此问题的大多数答案都不回答提出的问题。 – 2009-10-10 16:52:30

回答

2

尝试EMMA它是免费的。它在Eclipse和JetBrains IDEA支持以及TeamCity构建服务器中得到支持。

+0

请注意,代码覆盖仅在IDEA的最终版本中支持,而不是社区版本。 – Eponymous 2013-08-30 19:40:43

1

Clover是一个很好的工具。

+2

不幸的是,它是一个商业产品:-( 除此之外,它仍然是,目前仍然保持着,根据我的经验,它给出了准确的结果(例如,艾玛不允许我在枚举中获得100%的覆盖率) 它插入Eclipse,Hudson,Sonar,... 这份报告真的很干净(在一天结束时会有很大的不同) – vdr 2009-10-05 09:27:25

+0

不幸的是,谁支付*你的*工资? – 2014-11-18 14:55:01

+0

我相信Clover现在是开源的 – John 2017-08-03 20:38:44

16

的Cobertura,艾玛甚至四叶草只能做分支/判定覆盖(除了线/声明覆盖,当然)。 Clover还提供了方法覆盖范围(它简单地测量在执行过程中是否全部输入了方法)。

对于路径覆盖范围(加上行/语句覆盖率),请尝试JMockit Coverage

可以找到示例报告here

实际上,截至目前这只是新路径覆盖支持的初始版本,我仍然需要改进。

+0

+1这个很好的答案,迄今为止唯一一个(所有其他人都缺少OP的真正问题) – 2009-11-26 03:29:10