用Emma的Eclipse插件进行代码覆盖率测试
关键字: Emma Eclipse 覆盖率 测试
如上一个关于Cobertura的专题所说,我这里单开一个专题来专门说说Emma的Eclipse插件Eclemma的使用,尽管Emma生成的report在与Cobertura一起比较是显得似乎有些蹩脚,但是垂涎于Emma在代码覆盖细节方面的出众表现,我还是决定在我的Eclipse中集成Eclemma以便在开发过程中进行覆盖测试。
在对多逻辑并行条件的代码进行覆盖测试时,Cobertura表现得性格粗犷,而Emma则表现的温柔细致,体贴入微。打个比方,如果我们的某段程序中有如下代码:
--------------------------------------------------------------------------------
if((a&&(b||c))||d){.......}
--------------------------------------------------------------------------------
现在我们凑巧为包含这段程序的某个方法写了一个test case,在一时疏忽的情况下,假设我们仅仅对if判断中的一条逻辑分支做了判断,那么,这段代码中{......}内部的代码可以保证覆盖到,这个是没有问题的,但是我们并没有完全覆盖if语句的所有逻辑判断分支。
这样,对Cobertura来说,它认为已经足够了,代码也已经都覆盖到了,所以上面的这段代码在测试报告中是以绿色显示的,表明这段代码是可以覆盖到的。但是对Emma来说,它认为他有责任告诉开发人员这里可能会存在的潜在问题,因此他进行将该语句中已经覆盖到的部分显示为绿色,而对于没有覆盖到的部分则显示为浅黄色的警告色。
为了体验Emma这种对开发人员VIP式的测试体验,我把Eclemma集成到了我的Eclipse中。
Eclipse的插件集成方式大体可分为两种,一种是直接拷贝,另一种就是采用install,我倾向于采用后者。
--------------------------------------------------------------------------------
Help→Software updates→Find and Install...→Search for new features to install→next→New Remote Site...→填写相关信息
--------------------------------------------------------------------------------
我填写的更新站点和插件名称如下:
--------------------------------------------------------------------------------
name:eclemma
URL:http://update.eclemma.org/
--------------------------------------------------------------------------------
点击完成结束配置,并开始下载安装插件,安装结束后Eclipse通常会提醒你重新启动Eclipse选择确定。在重新打开的Eclipse工具栏里你就会看到这个期待已久的代码覆盖测试工具Eclemma!