在开发过程中,我们应该养成编写本地单元测试用例的好习惯,甚至做到测试驱动开发。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看单元测试的代码覆盖率的更多相关文章

  1. 单元测试系列之一:如何使用JUnit、JaCoCo和EclEmma提高单元测试覆盖率

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢!   原文链接:http://www.cnblogs.com/zishi/p/6726664.html -----如 ...

  2. Jenkins构建Android项目持续集成之单元测试及代码覆盖率

    单元测试 在软件开发中一直在推崇TDD(测试驱动开发),但是一直不能被有效的执行或者并不是真正的测试驱动开发(先开发后写单元测试),因为我们懒!而Android开发又是大多应用层面的开发,很多都是和视 ...

  3. VS2013单元测试及代码覆盖率分析--Xunit

    1,Javaweb中有jmeter.jacoco.ant.badboy等集成测试代码覆盖率的方式,C#代码的覆盖率怎么测试呢?VS2013的IDE上本身并未集成测试的工具,以下讲解VS2013中C#代 ...

  4. Java开发工具IntelliJ IDEA单元测试和代码覆盖率图解

    原文 http://www.cnblogs.com/xiongmaopanda/p/3314660.html Java开发工具IntelliJ IDEA使用教程:单元测试和代码覆盖率 本文将展示如何使 ...

  5. Eclipse项目里面看源码和文档

    Eclipse项目里面看源码 1.新建项目列表 2.进入struts2-core-2.3.20.jar,双击之后,看不到源码 3.右键struts2-core-2.3.20.jar,选择propert ...

  6. [Azure Devops] 获取单元测试的代码覆盖率

    1. 获取代码覆盖率 上一篇文章里,我们在 Pipeline 中插入一个单元测试并把所有单元测试都通过作为 Pipeline 通过的硬性要求.除此以外,我们还可以获取单元测试的代码覆盖率,用作衡量代码 ...

  7. 【Java】eclipse中的JUnit单元测试

    eclipse中的JUnit单元测试 步骤: 选中当前工程 - 右键选择:build path - add libraries - JUnit 4 - 下一步 创建Java类,进行单元测试. 此时的J ...

  8. 单元测试系列:如何使用JUnit+JaCoCo+EclEmma完成单元测试

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢!   原文链接:http://www.cnblogs.com/zishi/p/6726664.html -----如 ...

  9. Android -------- eclipse平台上的单元测试框架

    eclipse平台上单元测试框架 继承android.test.AndroidTestCase类 清单文件中设置 设置指令集,与application标签同级 <instrumentation ...

随机推荐

  1. application pool can not write to event log

    https://stackoverflow.com/questions/9564420/the-source-was-not-found-but-some-or-all-event-logs-coul ...

  2. 【bzoj3298】[USACO 2011Open]cow checkers(博弈论)

    题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3298 博弈论经典结论题,我也没什么好说的.matrix67大佬比我想得深入的多:捡石子 ...

  3. 《Computational Statistics with Matlab》硬译

    第1章 从随机变量采样 研究者提出的概率模型对于分析方法来说通常比较复杂,研究者处理复杂概率模型时越来越依赖计算.数值方法,通过使用计算方法,研究者就不用对一些分析技术做一些不现实的假设(如正态性和独 ...

  4. java XML解析

    package com.kpsh.myself; import java.io.File;import java.io.FileInputStream;import java.util.List; i ...

  5. python3.7安装模块MySQLdb报错error: Microsoft Visual C++ 14.0 is required.

    error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools&quo ...

  6. lightoj1213推公式

    很容易推出来的公式ans=n^(k-1)*k*sum 然后快速幂就好了 #include<map> #include<set> #include<cmath> #i ...

  7. java在文件中输出换行符

    在字符串后面添加\r\n就可以了.   或者使用newline方法: FileOutputStream fos=new FileOutputStream("c:\\11.txt") ...

  8. winform 中 MessageBox 用法大全

    (转自:http://blog.csdn.net/xuenzhen123/article/details/4808005) MessageBox.Show()共有21中重载方法.现将其常见用法总结如下 ...

  9. 使用sqlmap执行SQL注入攻击

    sqlmap是开源的SQL注入自动攻击工具,它可以自动的探测SQL注入点并且进一步控制网站的数据库. Kali Linux默认安装了这个工具. 找到潜在的攻击目标 第一步是找到有SQL注入漏洞的网站. ...

  10. 前端之css样式01

    选择器,css文本属性 CSS语法: 选择器 {属性1: 值1; 属性2: 值2} CSS放置的位置: 1. 直接写在标签里面,通过style属性来设置CSS样式 2. 在head标签里面通过styl ...