Jacoco介绍

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

http://www.eclemma.org/

下面介绍使用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覆盖率工具使用的更多相关文章

  1. Jacoco覆盖率工具使用之maven篇

    说明 之前的文章已经介绍过如何使用apacheant 执行jacoco工具,下面开始介绍如何使用maven使用jacoco工具. 1.首先新建一个maven项目       如图所示:        ...

  2. Jacoco覆盖率工具使用调研

    JaCoCo Java Code Coverage Library Jacoco是一个开源的覆盖率工具.Jacoco可以嵌入到Ant .Maven中,并提供了EclEmma Eclipse插件,也可以 ...

  3. jacoco覆盖率工具测试及性能分析

    ant版本:https://ant.apache.org/bindownload.cgi jdk版本 注: ant 1.10    --->   jdk1.8 ant 1.9      ---& ...

  4. 测试覆盖率工具:EclEmma

    测试覆盖率工具:EclEmma 2016-08-26 目录 1 测试覆盖率实现技术2 EclEmma介绍3 EclEmma测试覆盖率指标4 EclEmma安装5 示例项目介绍  5.1 创建项目  5 ...

  5. iOS 覆盖率检测原理与增量代码测试覆盖率工具实现

    背景 对苹果开发者而言,由于平台审核周期较长,客户端代码导致的线上问题影响时间往往比较久.如果在开发.测试阶段能够提前暴露问题,就有助于避免线上事故的发生.代码覆盖率检测正是帮助开发.测试同学提前发现 ...

  6. Java測试覆盖率工具----Cobertura,EclEmma

    Cobertura 是一个与Junit集成的代码覆盖率測量工具 它是免费.开源的 它能够与Ant和Maven集成.也能够通过命令行调用 能够生成HTML或XML格式的报告 能够依照不同的标准对HTML ...

  7. jacoco+maven 初次使用覆盖率工具

    工作要搞覆盖率测试,看到公司平台上用的jacoco,就找了网上的demo自己跑了一下. 一.覆盖率测试是干什么的 http://www.open-open.com/lib/view/open14721 ...

  8. JaCoCo 代码覆盖率工具(基于Maven+TestNG)

    JaCoco是一个代码覆盖率库. 官方网站:http://www.jacoco.org/ 安装: 以 Maven(http://www.testclass.net/maven/) 安装为例: < ...

  9. 测试覆盖率工具EclEmma安装与使用

    此文来自于:https://www.cnblogs.com/cnsdhzzl/p/7638883.html EclEmma的简介 一个优秀的开源软件测试工具 eclipse的一个插件 能够对由 Jav ...

随机推荐

  1. 使用Chrome快速实现数据的抓取(二)——协议

    在前面的文章简单的介绍了一下Chrome调试模式的启动方式,但前面的API只能做到简单的打开,关闭标签操作,当我们需要对某个标签页进行详细的操作时,则需要用到页面管理API.首先我们还是来回顾下获取页 ...

  2. 通过adb把apk安装到系统分区

    通过adb把apk安装到系统分区 以谷歌拼音为例:GooglePinyin1.4.2.apk提取出so文件libjni_googlepinyinime_4.solibjni_googlepinyini ...

  3. 成为Java GC专家

    http://www.importnew.com/author/wangxiaojie

  4. redhat 各种版本下载

    http://www.linuxfly.org/post/659/ http://pan.baidu.com/share/home?uk=3742764079&view=share#categ ...

  5. clip-path 教程:使用 CSS 中的 clip-path 轻松实现多边形

    作为一个前端开发,一个主要的工作就是来实现设计师设计的UI界面.而在UI界面中,各种各样的形状元素应用则是随处可见,比如三角形: 以前碰到这种形状的时候,会使用各种黑科技的技巧,比如使用CSS中的bo ...

  6. 使用Bootstrap 3开发响应式网站实践01,前期准备、导航区域等

    "使用Bootstrap 3开发响应式网站实践"系列,将使用Bootstrap 3.2制作一个自适应网站,无论是在电脑.平板,还是手机上,都呈现比较好的效果.在电脑浏览器上的最终效 ...

  7. Maven私仓配置

    <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...

  8. spring事务的隔离级别(透彻理解)

    1.spring 事务这个东西,是轮子,每个service,都需要用到.所以干脆就做在框架层实现. 2.spring是怎么给你的service方法加事务的呢?jdk动态代理,会针对每个service类 ...

  9. 利用Spring MVC 上传图片文件

    本文转自:http://amcucn.iteye.com/blog/264457.感谢作者 近日在工作当中,需要用到上传图片的功能,然而自己平时学习的时候只会使用struts的上传功能,但因为项目并没 ...

  10. java四舍五入保留两位小数4种方法

    4种方法,都是四舍五入,例: import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberF ...