Jacoco入门
转自:wangmuming 的博客
Jacoco是一个开源的覆盖率工具。Jacoco可以嵌入到Ant 、Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序。很多第三方的工具提供了对Jacoco的集成,如sonar、Jenkins等。
官网地址:http://www.eclemma.org/jacoco/
Java Counters
Jacoco包含了多种尺度的覆盖率计数器,包含指令级(Instructions,C0coverage),分支(Branches,C1coverage)、圈复杂度(CyclomaticComplexity)、行(Lines)、方法(non-abstract methods)、类(classes)。
如上图所示,标示绿色的为分支覆盖充分,标黄色的为部分分支覆盖,标红色的为未执行该分支。
支持的集成工具
Jacoco团队提供了如下的一些集成工具的支持:
Java API
http://www.eclemma.org/jacoco/trunk/doc/api/index.html
Command Line
http://www.eclemma.org/jacoco/trunk/doc/agent.html
Apache Ant
http://www.eclemma.org/jacoco/trunk/doc/ant.html
Apache Maven
http://www.eclemma.org/jacoco/trunk/doc/maven.html
Eclipse EclDmma Plugin
下面介绍使用ant工具的方法,将使用一个web工程做完示例讲解。
Apache Ant的使用
web工程图
执行ant file task:all-report
执行ant file后生成报告report目录如图所示:
测试报告
可以单独运行命令:anttest-report生成测试报告;
执行之后会在build/report/html生成测试报告,其中打开index.html如下所示。下
单击:
进入:
展示测试类名称、测试方法名称 、测试状态 success or fail 、类型及执行时间:
测试用例覆盖率
可以单独执行命令:antcoverreport;
执行之后会在build/report/coverage下生成覆盖报告,其中打开index.html如下所示:
单击包名称一层一层单击进入:
具体颜色定义查看上面的介绍。
Jacoco与jenkins,sonar集成
Jenkins中构建简单配置
图仅供参考。
Jacoco与jenkins集成
首先jenkins安装jacoco插件,如图所示:
建议使用jenkins插件管理进行安装;
对应的Jenkins插件见https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin
配置jacoco插件
在“Addpost-build action”中选择“”,如图所示:
配置如下部分:
第一个部分:代码覆盖率统计文件位置;
第二个部分:classes文件位置;
第三个部分:源码文件位置;
根据需要填写百分比;
Jacoco 与sonar集成
在项目跟目录下面新建一个sonar-project.properties,如web图所示。
编辑此文件:
执行sonar,配置jenkins部分
只需要执行sonar-runner即可,前提是将jenkins与sonar-runner集成在一起;
运行jenkins,执行构建任务
看到类似结果,表示构建结束。
至此,可以通过jenkins查看代码覆盖率等信息。
单击进入测试项目:
单击“CodeCoverage Trend“部分,进入详细页面:
单击进入详细的覆盖率文件:
SonarQube展示
进入sonarqube项目:http://172.16.XXX.XXX9000/
单击工程jacoco_test_project:
进入详细页面:
其中圈中左边为单元测试覆盖率,右边为单元测试统计;
单击进入
通过下拉框选择查看行覆盖情况,未覆盖行情况,分支覆盖情况,未覆盖分支情况;
单击 进入测试情况信息页面:
如果存在错误,此部分会展示错误情况。
Jacoco入门的更多相关文章
- 使用dropwizard(4)-加入测试-jacoco代码覆盖率
前言 dropwizard提供了一个简单的测试框架.这里简单集成并加入jacoco测试. Demo source https://github.com/Ryan-Miao/l4dropwizard 本 ...
- Gradle 1.12用户指南翻译——第三十四章. JaCoCo 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- 测试人员学Java入门指南
目标读者 本指南特别适合有Python基础的同学学习Java入门,对于没有任何编程经验的同学可能会存在困难. 为什么测试人员要学Java 选择Java,应该不错.TesterHome测试论坛知名大佬基 ...
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
随机推荐
- 文件上传(excel服务端解析)
1,html结构 <!-- 引入jQuery和jQuery.form.js插件 --><script type="text/javascript" src=&qu ...
- (转)pymysql 连接mysql数据库---不支持中文解决
往数据库里插入中文时出现异常:UnicodeEncodeError: 'latin-1' codec can't encode characters 就是编码的问题,pymysql默认的编码是lati ...
- Calibre - book library management application
http://calibre-ebook.com/ Library Management E-book conversion Syncing to e-book reader devices Down ...
- 用Broadcast广播在activity之间、fragment之间、activity和fragment之间相互传数据
例如:A界面要收到B界面的更变信息 一.A界面注册广播 private static final String INTENT_BROADCAST = "android.intent.acti ...
- 如何把excel 数据做dataprovide
1. 新建一个类,实现接口Iterator import java.io.FileInputStream; import java.io.FileNotFoundException; import ...
- 7 -- Spring的基本用法 -- 6...
7.6 Spring 3.0 提供的Java配置管理 Spring 允许使用Java类进行配置管理,可以不使用XML来管理Bean,以及Bean之间的依赖关系. Interface :Person p ...
- Ridit分析
对于有序分类资料,由于指标存在等级顺序,因此不能使用卡方检验,除了使用秩和检验之外,ridit检验也是分析有序分类资料的常用方法,属于非参数检验. ridit检验的基本做法是将一组有序分组资料转换成一 ...
- 搭建Kafka集群(3-broker)
Apache Kafka是一个分布式消息发布订阅系统,而Kafka环境往往是在集群中配置的.本篇就对配置3个broker的Kafka集群进行介绍. Zookeeper集群 Kafka本身提供了启动了z ...
- JS与树本(复杂)
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>树形 ...
- loadrunner随笔1
快捷键: 注释快捷键: ctrl+alt+c 取消注释快捷键:ctrl+alt+u 开始录制快捷键: ctrl+r 运行时设置快捷键: f4 录制设置: ctrl + f7 查找和替换:ctrl + ...