使用eclemma进行代码覆盖率统计【…

一、简述
eclemma是一个Eclipse的java代码覆盖测试工具插件,使用它的主要目的有两个:
1、用于编码过程中检查运行中代码调用的覆盖情况,对编码进行改进。
2、检查单元测试用例的覆盖率。
二、下载
网站地址: http://www.eclemma.org/  ,本人下载的是eclemma-2.1.0,下载后如图:
使用eclemma进行代码覆盖率统计【图解】
三、Eclipse下的安装
在eclipse下安装插件很简单,直接复制eclemma-2.1.0文件夹到eclipse安装目录下的dropins文件夹下即可,比如安装在d盘则复制到这里:D:\Program Files\eclipse\dropins\eclemma-2.1.0,重新启动eclipse,你应该能看到工具栏上出现的新图标: 使用eclemma进行代码覆盖率统计【图解】,这就ok。
四、MyEclipse下的安装
本人用的是MyEclipse8.5,直接复制是不行的,安装时参考了郑一小的 “myeclipse9.1安装插件的方法” ,运行他提供的代码后,在控制台输出了一些插件信息,如图:
使用eclemma进行代码覆盖率统计【图解】
把这些内容复制到MyEclipse安装目录下的bundles.info文件最后保存即可,本人的MyEclipse安装在D盘,bundles.info文件具体位置:“D:\Program Files\Genuitec\MyEclipse 8.5\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info”。
完成以上工作MyEclipse里面仍然没有出现新图标,此时进行一下操作:在工具栏上点击右键,选择Customize Perspective,如图:
使用eclemma进行代码覆盖率统计【图解】
展开Launch,勾选其中的Converage即可,如图:
使用eclemma进行代码覆盖率统计【图解】
这下显示了:
使用eclemma进行代码覆盖率统计【图解】
五、用一个简单的程序测试效果
public class Printer {
public String printHi(String name){
if("tom".equals(name))
return "hi!"+name;
else
return "go to hell.";
}
public static void main(String[] args) {
Printer p = new Printer();
p.printHi("tom");
//p.printHi("dom");
}
}
运行Eclemma后:
使用eclemma进行代码覆盖率统计【图解】
绿色表示完全执行的代码,红色表示没有执行到的代码,黄色执行了一部分一般是分支,此时可以查看代码的覆盖率,点击菜单中的Window->Show View->Other,找到Java下的Converage:
使用eclemma进行代码覆盖率统计【图解】打开Coverage面板
使用eclemma进行代码覆盖率统计【图解】
可以看到图中显示了每个方法的运行覆盖率,图中的PrinterTest是一个单元测试用例,由于直接执行Printer的main方法,单元测试类没有被执行,因此为0.0%。
六、单元测试的覆盖率
下面是单元测试用例的代码:
import org.junit.Test;
public class PrinterTest {
@Test
public void testPrintHi() {
Printer p = new Printer();
String actual = p.printHi("tom");
String expected = "hi!tom";
Assert.assertEquals(expected, actual);
}
}
只用JUnit执行该测试用例后,再次查看代码覆盖率:
使用eclemma进行代码覆盖率统计【图解】
由于执行单元测试,main方法不被执行,因此覆盖率为0.0%。printHi方法的覆盖率没有达到100%说明测试用例的覆盖度不够,分析一下用例代码发现我们只测试了if条件的一种情况,此时若补充另外一种情况的测试用例,printHi方法的覆盖率将达到100%。
可以看出使用Eclemma能够很方便的了解我们的代码和测试用例的编写质量,可以用来提高开发水平。
七、测试覆盖率历史及合并计算
Eclemma会记录每次覆盖率测试的结果,可以通过点击Coverage面板的Select Active Session
使用eclemma进行代码覆盖率统计【图解】 图标进行切换,
使用eclemma进行代码覆盖率统计【图解】
对多次记录还可以合并计算覆盖率,点击 使用eclemma进行代码覆盖率统计【图解】选择多次测试结果
使用eclemma进行代码覆盖率统计【图解】
合并后计算最终的覆盖率
使用eclemma进行代码覆盖率统计【图解】









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值