2009-10-05 114 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