jacoco + eclipse单元测试覆盖率
概念
Jacoco:JaCoCo是一个开源的覆盖率工具,它针对的开发语言是java,其使用方法很灵活,可以嵌入到Ant、Maven中;可以作为Eclipse插件,可以使用其JavaAgent技术监控Java程序等等。
插桩:程序插桩,它是在保证被测程序原有逻辑完整性的基础上在程序中插入一些探针(又称为“探测仪”,本质上就是进行信息采集的代码段,可以是赋值语句或采集覆盖信息的函数调用),通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,进而得到逻辑覆盖等动态信息,从而实现测试目的的方法。
On-the-fly插桩:JVM中通过-javaagent参数指定特定的jar文件启动Instrumentation的代理程序,代理程序在通过Class Loader装载一个class前判断是否转换修改class文件,将统计代码插入class,测试覆盖率分析可以在JVM执行测试代码的过程中完成。
Offline模式:在测试前先对文件进行插桩,然后生成插过桩的class或jar包,测试插过桩 的class和jar包后,会生成动态覆盖信息到文件,最后统一对覆盖信息进行处理,并生成报告。
注入方法
比较有特色的几个方法:
Instrumentation 注入
Byte Code 字节码注入(在Byte Code时使用的ASM技术修改字节码方法,可以修改Jar文件、class文件字节码文件,通过一个Probe探针的方式来注入,程序执行后可以被记录,它不会改变原有代码的行为)
On-the-fly 在线模式
Offline 离线模式
Eclipse EclEmma Plugin
目前支持的启动类型:
Local Java application java程序(有main)
Eclipse/RCP application 桌面应用程序
Equinox OSGi framework
JUnit test 单元测试
TestNG test
JUnit plug-in test
JUnit RAP test
SWTBot test
Scala application
安装
Eclipse:Help->Eclipse Marketplace->搜索EclEmma
java application覆盖测试
点击工具栏中的按钮(在此之前可能需要自己先运行一遍代码)。测试结果如下:
红色:测试未覆盖
黄色:测试部分覆盖(通常是if和switch)
绿色:测试已覆盖
查看测试率,Window->Show View->Other->Java->Coverage
通常情况下,Coverage显示的是单次的覆盖测试结果,如果想常看多次的合并结果,点击
Project Explorer中查看覆盖率,Window->Preferences->General->Appearence->Label Decorations,选中Java Code Coverage。
JUnit Test覆盖测试
右键一个需要测试的文件,new->JUnit->JUnit Test Case,完成一个测试类。选择测试类启动覆盖测试。结果如图:
生成覆盖率报告
File->Export->Java->Coverage Report->选择需要生成报告的测试源以及目标地址
jacoco + eclipse单元测试覆盖率的更多相关文章
- Jenkins集成jacoco收集单元测试覆盖率
Jenkins集成jacoco收集单元测试覆盖率 2020-02-28 目录 0 整体思路1 Jenkins创建JacocoIntegrateTestDemo项目2 配置源码管理3 配置Build4 ...
- Android-jacoco代码覆盖率:单元测试覆盖率+功能测试覆盖率
参考:https://docs.gradle.org/current/dsl/org.gradle.testing.jacoco.tasks.JacocoCoverageVerification.ht ...
- [转载] JaCoCo:分析单元测试覆盖率的利器
转载自http://www.ibm.com/developerworks/cn/java/j-lo-jacoco/和http://www.cnblogs.com/chenfengmugu/p/4937 ...
- 单元测试系列之一:如何使用JUnit、JaCoCo和EclEmma提高单元测试覆盖率
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6726664.html -----如 ...
- Jacoco收集单元测试、集成测试和系统功能测试覆盖率
Jacoco收集单元测试.集成测试和系统功能测试覆盖率 2020-02-27 目录 1 安装版本2 被测系统代码示例3 收集单元测试覆盖率4 收集集成和功能测试覆盖率 代码覆盖率可在单元测试.系统测 ...
- Jenkins 进阶篇 - 单元测试覆盖率
我们做项目开发,肯定免不了要写单元测试,不管是 Java 项目.Python 项目.PHP 项目,甚至是 nodejs 项目,都应该要写单元测试,本小节就来介绍单元测试的覆盖率报告输出和展示,在后面的 ...
- nodejs 中使用 mocha + should + jscoverage 生成 单元测试覆盖率报告
最近一直在做nodejs,而关于js的单元测试覆盖率网上资料比较少而且吧比较零散,我从网上找来一些资料整理一下分析给大家,希望大家可以少走弯路. 首先我是从windows环境下测试的,用到的工具有 m ...
- Xcode5 统计单元测试覆盖率(仅限XCTest)
概要 通过本篇文章,你将学会如何在Xcode5下使用统计XCTest测试代码的覆盖率,以及如何快速得到测试覆盖率的图形化报表. 为什么要特别说明Xcode5下的代码覆盖率统计,原因是,以前的方法在新环 ...
- Jenkins集成jacoco收集集成测试覆盖率
Jenkins集成jacoco收集集成测试覆盖率 2020-02-28 目录 0 整体思路1 安装版本2 全局工具配置3 Jenkins创建JacocoIntegrateTestDemo项目 3.1 ...
随机推荐
- mysql 案例 ~ insert插入慢的场景
一简介: insert出现慢日志中,应该怎么检测呢 二 理解:事务提交延迟,一般出现在写日志延迟的情况下,会有几种可能 场景: 1 RR模式下,insert等待gap lock锁导致的 ...
- 解释下面URL
解释下面URL各部分的含义 a.duke.csc.villanova.edu/jss/examles.html duke是计算机名,该计算机属于villanova.edu域的csc子域.edu是最高级 ...
- 在 sql server 中,查询 数据库的大小 和 数据库中各表的大小
其实本来只想找一个方法能查询一下 数据库 的大小,没想到这个方法还能查询数据库中 各个数据表 的大小,嗯,挺好玩的,记录一下. MSDN资料:https://msdn.microsoft.com/zh ...
- Scala 继承
1. 继承 Scala 通过 extends 关键字来继承类. 那么继承一个类有什么好处呢? 子类拥有继承自超类的方法和字段(即为val(常量), var(变量)所定义的) 可以添加自己需要的新方法和 ...
- tomcat目录映射
环境:CentOS 6 + tomcat 7 + jdk 7 目前使用2种方法: 1.tomcat/conf/server.xml <Host name="localhost" ...
- 033_linux操作系统火焰图探测系统性能
火焰图是定位疑难杂症的神器,比如 CPU 占用高.内存泄漏等问题.特别是 Lua 级别的火焰图,可以定位到函数和代码级别. 一.研究 https://moonbingbing.gitbooks.io/ ...
- $Django 路由层(有,无名分组、反向解析、总路由分发、名称空间、伪静态)
1 简单配置 -第一个参数是正则表达式(如果要精准匹配:'^publish/$') -第二个参数是视图函数(不要加括号) -url(r'^admin/', admin.site.urls), 注: ...
- php password_hash
2018-1-6 17:22:13 星期六 php 自带的密码生成方法, 如果生成密码最好使用这个, 这个是"单程"的, 没有解密函数 $a = '123456'; $b = pa ...
- mybatis:延迟加载时不要在get/set方法上面添加final关键字(原创)
1.mybatis-config.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ...
- Linux内存使用调整
前段时间在做播放器的时候,遇到个问题,花了很长时间,做个记录,希望对有需要的人有所帮助: 播放器的播视频的时候,无论是手动切换视频还是到视频播放完成,自动切换视频,一定次数后均出现黑屏现象,偶尔有声音 ...