Emma和cobertura都是代码执行覆盖率工具。两者的使用方法和执行结果都很相似,甚至菜单名称也差不多。
在eclipse里能找到的eCobertura插件已经是好几年前的版本了,而且在上一个JUNO版本中可以安装上,而在新近的Kepler版本里会提示没有找到junit4插件什么的,只能手工安装(见本文最后)
相对来说emma还是一直在更新着。在eclipse里搜索emma插件后安装即可。大部分说法是emma更好一些。尤其是增加了一种黄色的警告显示,表明在组合条件判断上更精确。
然而我在做单元测试的覆盖率检查时,却意外发现二者的检测结果竟然不尽相同。我习惯上在一个testcase里加多条断言。只要有一条断言没通过,emma会把整个testcase显示为红色——这怎么行呢?但cobertura就能把执行通过的断言显示为绿色。说到这,也发现junit的一个规律,一旦一条断言不通过,则认为这个testcase失败了,下面的断言也就不再执行了。这样看来还是cobertura更适合我的需要。
附cobertura在Kepler里的安装方法:把JUNO版本里plugins目录下的org.junit4_XXX文件夹及4个ecobertura.xxx.jar文件考过去就自动安装了。