Bootstrap

java coverage_好用的Java Code Coverage工具?

看了下这个问题是2014年问的,我最近对相关开源的Java Code Coverage Tools 做了一些相关测试,想把相关工具在2017年8月为止的一些相关的信息分享出来:

首先贴一个Coverage Tools比较表(source: Atlassian Clover(其中一个Coverage Tool), 根据我的实验,尽管利益相关,但是还是很客观)

其中比较了六种open source Java Code Coverage Tools, 加粗的是在Windows下与Eclipse Neon.3 Release (4.6.3) Java 1.8.0_131 兼容的Tools:Atlassian Clover

Cobertura

EclEmma (JaCoCo)

JCov

Code Cover

PIT

下面简单说下加粗coverage tool的优缺点:

Clover: 17年刚刚开源,coverage metrics基本是标配statement和branch, 在GUI中提供了很多可设置选项,report强大,相关文档较齐备,但是他open source后还是会要求Atlassian的license,比较麻烦。

EclEmma: 以JaCoCo为library, 和大部分build tool, CI 和 IDE 兼容,提供line, condition(网站上写的是branch但是经过测试其实是符合condition的定义) coverage,但是report相对简单,而且一次只能测一个.class或JUnit文件。

Code Cover: 在coverage metrics方面可以说是比较强大的了,提供MCDC coverage,在GUI里也提供了很多分析工具。但是貌似很久没有更新了,JUnit test case只能在Eclipse Kepler这样老一些的version里面测。

PIT: 关于PIT是否属于Code Coverage 其实还是比较有争议。他的强大在于他用了 mutation coverage。

写的比较简单,很多名词没有展开,中间可能有不太严谨的地方,多包涵。如果有写的不对的地方,也希望能指出,谢谢。

;