在Eclipse/STS中使用EclEmma进行覆盖率检查

  • EclEmma
    • 官网 - Java Code Coverage for Eclipse
    • 测试覆盖率工具:EclEmma
    • 实现原理
      • Instrumentation:代码注入,在产品代码的关键位置插入统计代码,从而获得测试覆盖率数据
        • Class Instrumentation: 把统计代码插入编译好的.class文件
        • Source Instrumentation:把统计代码插入源代码并编译成新的.class文件
      • Custom JVM:在JVM中把统计代码插入.class。测试覆盖率分析可以在JVM执行测试代码的过程中完成
    • 功能
      • 可以结合Junit或TestNG使用
      • 作为Eclipse/STS的插件来使用
      • 可以显示各层级的覆盖率情况
      • 可以在源码中高亮代码覆盖情况
      • 可以生成覆盖率测试报告
      • 既可以通过单元测试来进行覆盖率测试,也可以以Java Application等正常应用的形式来进行(编译出来或者跑起来以后,交给测试人员进行测试,测试完成之后再生产报告)。
    • 覆盖率指标
      • 行覆盖率: 部分行覆盖:a>b?a:b
      • 基本语句块覆盖率: 基本语句块:没有if-else分支的代码区域
      • 类覆盖率: 由JVM加载并初始化
      • 方法覆盖率: 第一个基本语句块被执行
    • 安装
      • 离线安装。下载后解压出feature和plugin目录,并分别复制到Eclipse/STS的相应目录下,重启Eclipse/STS,工具栏中在调试、运行按钮后面会多出一个按钮,那么就是安装成功了
    • 使用
      • 选择想要进行覆盖率测试的Project
      • 然后在工具栏中按钮的下拉菜单中可以选择"Coverage As"后,可以进一步选择当做Java Application、Junit Test还是TestNG来进行覆盖率测试(最终要是要结合测试框架来执行单元测试,只是顺便统计覆盖率)
      • 运行完成后,可以在"Coverage" View窗口中来查看覆盖率测试结果(各层级的覆盖率百分比)。同时该项目的代码中会用红/绿色高亮跑过/未跑过的代码。
      • 窗口中可以导入/导出Session结果为HTML等格式的文件报告

posted on 2019-08-22 14:31  碎羽love星谊  阅读(1417)  评论(0编辑  收藏  举报

导航