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. 正确率、召回率和F值

    正确率.召回率和F值是在鱼龙混杂的环境中,选出目标的重要评价指标. 不妨看看这些指标的定义先: 正确率 = 正确识别的个体总数 /  识别出的个体总数 召回率 = 正确识别的个体总数 /  测试集中存 ...

  2. Win7 开启显示快速启动工具栏,发送到快速启动右键菜单

    开启Win7快速启动栏 许多网友一定记得在 Windows 7 之前的 Windows 系统都有个快速启动(quick launch)区域. 比如 IE 浏览器.Windows Media Playe ...

  3. MyBatis接口的简单实现原理

    MyBatis接口的简单实现原理 用过MyBatis3的人可能会觉得为什么MyBatis的Mapper接口没有实现类,但是可以直接用? 那是因为MyBatis使用Java动态代理实现的接口. 这里仅仅 ...

  4. Asp.net处理程序(第六篇)

    四.Web服务处理程序 对于Web服务来说,标准的方式是使用SOAP协议,在SOAP中,请求和回应的数据通过XML格式进行描述.在Asp.net 4.0下,对于Web服务来说,还可以选择支持Ajax访 ...

  5. 使用DataGridView进行增删改查,并同步到数据库

    DataGridView控件具有极高的可配置性和可扩展性.它提供有大量的属性.方法和事件,能够用来对该控件的外观和行为进行自己定义.以下通过一个小样例来展示DataGridView进行增删改查,并同步 ...

  6. 《JavaScript启示录》

    <JavaScript启示录> 基本信息 作者: (美)Cody Lindley 译者: 徐涛 出版社:人民邮电出版社 ISBN:9787115334947 上架时间:2014-2-21 ...

  7. 使用HTML5画饼图

    在进行数据的统计分析时, 饼图也是比较经常用到的一类统计图. 需求分析:   一个饼图一般包含以下几部分:   1.标题   2.扇形   3.份额(百分比)   4.标识器      设计:     ...

  8. Spark一个简单案例

    Spark是一个类似Map-Reduce的集群计算框架,用于快速进行数据分析. 在这个应用中,我们以统计包含"the"字符的行数为案例,.为建立这个应用,我们使用 Spark 1. ...

  9. Strings of Power

    B. Strings of Power Volodya likes listening to heavy metal and (occasionally) reading. No wonder Vol ...

  10. 最大熵,熵,MLE的解释,还行

    这篇文章: https://blog.csdn.net/jiaoyangwm/article/details/81276921