Eclipse中单元测试覆盖率统计EclEmma、Clover与Cobertura插件

1、使用EclEmma统计代码的测试覆盖率

 

在Eclipse环境中,使用JUNIT开发单元测试程序。为了统计代码的覆盖率,我一直在找一个合适的工具,Emma是排在搜索引擎第一的工具,但是研究了半天还是没能上手。后来试用了EclEmma(Emma在Eclipse里的一个插件),安装简单,覆盖率显示直观。

Eclipse,点击Help → Install new software然后按照下图输入地址:

      

java 单元测试分支覆盖率 eclipse 单元测试覆盖率_java 单元测试分支覆盖率

 

  很简单吧,安装成功以后我们就能在工具栏看到这个按钮:

       

java 单元测试分支覆盖率 eclipse 单元测试覆盖率_Test_02

 

Test目录,右击,右键菜单里面多了一个Coverage as的选项,先选择Open Coverage Diag,在Coverage那个tab选择你需要覆盖的代码。然后直接点击Coverage按钮,这时测试程序会在JUNIT中执行一遍,执行结束后会生成覆盖率统计结果。

 

 

如果进行了多次测试,我们可以点击Merge按钮,把覆盖率的结果进行合并。

 

2、 Eclipse中Clover插件统计覆盖率

 

为了统计测试覆盖率,我使用clover,我在这里下载了clover,按照Eclipse安装插件的两种方法中的第一种方法,将插件安装好,

但是还是不能用,因为这是商业软件,是要收费滴...,先获取免费使用的licence,到这里,ok,开始试用。

1、选择你的项目后,右键,Clover->Enable This Project.

2、Clover->Configure,选择Source为开发代码和测试代码,Test为测试代码

3、选中你的测试代码,run as Junit TestCase

之后就会有详细的覆盖情况的报告出来,真的是很详尽的~

 

PS:如果测试代码和开发的测试代码放在不同的project中的,在步骤2中设置Source和Test后可能有问题,可能统计出来的就是测试代码覆盖测试代码的情况了,所以我是在本地把测试写的测试代码也放到开发的单元测试代码的包下的,这样就可以用测试代码来覆盖开发代码了。当然可能是我自己没弄好导致的这个情况,大家根据自己情况来吧。

 

3、Eclipse的Cobertura插件 eCobertura

eCobertura是一个在Eclipse开发工具中使用Cobertura的插件,Cobertura是一个测量测试覆盖率的工具。eCobertura 能够让你直接从Eclipse中在 Cobertura覆盖模式下加载你的应用程序或测试。根据覆盖结果查看着色过的源文件,在一个树结构视图中浏览详细的覆盖效果。

Eclipse Update: http://ecobertura.johoop.de/update/ (要求Eclipse 3.5 以上)

java 单元测试分支覆盖率 eclipse 单元测试覆盖率_Test_03