Eclipse使用EclEmma看单元测试的代码覆盖率
在开发过程中,我们应该养成编写本地单元测试用例的好习惯,甚至做到测试驱动开发。EclEmma是Eclipse的一个插件,是一款测试用例的代码覆盖率统计工具,能明确到哪一行在测试过程中被调用到了。这里不仅仅是单元测试,部署到测试环境的集成测试也可以统计。下面来看下怎么使用EclEmma。
首先说下安装。作为最方便莫过于直接在Eclipse中点击菜单栏的Help -> Eclipse Marketplace -> 在Find输入框中敲"EclEmma" -> 点击放大镜,直接找到"EclEmma Java Code Coverage" -> 点击Install按钮进行插件下载安装。
安装好后在代码右击鼠标,应该会出现一栏"Coverage As"用于执行Junit、配置覆盖率统计项。现在假设我们已经用Junit写好了一个单元测试类,右击该类 -> 选择Coverage As -> 点击JUnit Test,执行该Junit用例,跑完后会出现代码覆盖率统计窗口Coverage,里面会显示各项指标,包括覆盖率百分比,已覆盖指令数,未覆盖指令书,总指令数。点开Element项,可以跟踪到具体每一个类的覆盖情况,被覆盖代码行会呈现绿色,未覆盖的呈现红色。可以把单元测试代码覆盖率导出,右击Coverage窗口空白处 -> 选择Export Session -> 选择导出文件格式和路径 -> 点击Finish。
如果想在环境上跑后统计覆盖率,需要借助jacoco,在对应的tomcat服务器上部署jacoco。先到http://eclemma.org/jacoco/index.html下载最新的jacoco压缩包,上传到对应测试服务器,通过unzip命令解压jacoco压缩包。注意安装jacoco时,需要关闭tomcat。配置tomcat的catalina.sh文件
JAVA_OPTS="$JAVA_OPTS -javaagent:/home/wlf/jacoco-0.7.10/lib/jacocoagent.jar=includes=cn.wlf.*,output=file,append=false,destfile=/home/wlf/jacoco.exec"
其中includes表示针对指定的class进行覆盖率数据收集;
append=true/false:每一次收集的覆盖率数据是追加还是替换,不设置默认为true;
output标识dump出来的覆盖率数据文件形式,output=file/tcpserver/tcpclient:分别为file,tcpserver和tcpclient,file是比较简单的方式,tcp的方式可支持自行开发获取覆盖率数据的工具。不设置默认是file;
destfile= home/wlf/jacoco.exec是生成覆盖率文件的路径。
以上配置好后启动tomcat,跑完用例后会在destfile配置的目录下生成jacoco.exec文件,把这个文件取出到本地,导入到eclipse的coverage中即可看代码的测试覆盖率。怎么导入呢?在eclipse的菜单项点击Windows -> Show Views-> Java -> Coverage,在空白处右击,选Import Session -> 在Data File处选择本地存放的jacoco.exec文件 -> 点击Next,选择对应的源代码目录 -> 最后点击Finish。
Eclipse使用EclEmma看单元测试的代码覆盖率的更多相关文章
- 单元测试系列之一:如何使用JUnit、JaCoCo和EclEmma提高单元测试覆盖率
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6726664.html -----如 ...
- Jenkins构建Android项目持续集成之单元测试及代码覆盖率
单元测试 在软件开发中一直在推崇TDD(测试驱动开发),但是一直不能被有效的执行或者并不是真正的测试驱动开发(先开发后写单元测试),因为我们懒!而Android开发又是大多应用层面的开发,很多都是和视 ...
- VS2013单元测试及代码覆盖率分析--Xunit
1,Javaweb中有jmeter.jacoco.ant.badboy等集成测试代码覆盖率的方式,C#代码的覆盖率怎么测试呢?VS2013的IDE上本身并未集成测试的工具,以下讲解VS2013中C#代 ...
- Java开发工具IntelliJ IDEA单元测试和代码覆盖率图解
原文 http://www.cnblogs.com/xiongmaopanda/p/3314660.html Java开发工具IntelliJ IDEA使用教程:单元测试和代码覆盖率 本文将展示如何使 ...
- Eclipse项目里面看源码和文档
Eclipse项目里面看源码 1.新建项目列表 2.进入struts2-core-2.3.20.jar,双击之后,看不到源码 3.右键struts2-core-2.3.20.jar,选择propert ...
- [Azure Devops] 获取单元测试的代码覆盖率
1. 获取代码覆盖率 上一篇文章里,我们在 Pipeline 中插入一个单元测试并把所有单元测试都通过作为 Pipeline 通过的硬性要求.除此以外,我们还可以获取单元测试的代码覆盖率,用作衡量代码 ...
- 【Java】eclipse中的JUnit单元测试
eclipse中的JUnit单元测试 步骤: 选中当前工程 - 右键选择:build path - add libraries - JUnit 4 - 下一步 创建Java类,进行单元测试. 此时的J ...
- 单元测试系列:如何使用JUnit+JaCoCo+EclEmma完成单元测试
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6726664.html -----如 ...
- Android -------- eclipse平台上的单元测试框架
eclipse平台上单元测试框架 继承android.test.AndroidTestCase类 清单文件中设置 设置指令集,与application标签同级 <instrumentation ...
随机推荐
- idea setting
input
- js 前台ajax验证马克一下
function check_form(){ var email=$("#email").val(); var code=$("#code").val(); v ...
- SQL编码规范
1 目的 为了保证所每个项目组编写出的程序都符合相同的规范,便于理解和维护,便于检查.减少出错概率,有助于成员间交流,保证一致性.统一性而建立的SQL程序编码规范. 2 范 ...
- 委托和事件C#演示代码
class Cat { private string _name; public Cat(string name) { _name = name; } public void Shout() { Co ...
- Netty官方示例
一.DEMO 官方并没有使用Hello World来作为一个例子,而是采用RFC的DISCARD,这个协议定义了就是接收到请求后什么也不干. 第一步编写DiscardServerHandler类: p ...
- AspectJ的Execution表达式
在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点" 例如定义切入点表达式 execution (* com.sam ...
- require.js资料
1.http://www.ruanyifeng.com/blog/2012/11/require_js.html?bsh_bid=230697246 (require.js的用法) 2.http:// ...
- SpringCloud 教程 | 第十四篇: 服务注册(consul)
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://blog.csdn.net/forezp. http://blog.csdn.net/forezp/art ...
- MySQL auto_increment介绍 以及 查询和修改auto_increment的方法
一.auto_increment使用方法 .创建table时设置auto_increment属性和初始值100 create table nonove ( id bigint unsigned not ...
- asp.net 禁止回车输入
//只在输入框禁止输入回车 if(event.keyCode==13&&event.srcElement.type=="textarea") { ...