zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    [开发笔记]-使用bat命令来快速安装和卸载Service服务
    [开发笔记]-多线程异步操作如何访问HttpContext?
    [开发笔记]-Windows Service服务相关注意事项
    [开发笔记]-VS2012打开解决方案崩溃或点击项目崩溃
    Chrome 开发者工具有了设备模拟器
    Mysql查看数据库表容量大小
    golang操作mysql数据库
    golang命令和VSCode配置
    golang广度优先算法-走迷宫
    golang爬取免费代理IP
  • 原文地址:https://www.cnblogs.com/wuxun1997/p/8480056.html
Copyright © 2011-2022 走看看