zoukankan      html  css  js  c++  java
  • Jacoco覆盖率工具使用

    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:

    进入详细页面:

    其中圈中左边为单元测试覆盖率,右边为单元测试统计;

     

    单击进入


     

    通过下拉框选择查看行覆盖情况,未覆盖行情况,分支覆盖情况,未覆盖分支情况;

     

     

    单击 进入测试情况信息页面:

     

    如果存在错误,此部分会展示错误情况。

  • 相关阅读:
    Spring Cloud 五 Feign的文件上传实现
    Spring Cloud 四:服务消费(Feign)【Dalston版】
    Spring Cloud 三:服务消费(Ribbon)【Dalston版】
    Spring Cloud二:服务消费(基础)【Dalston版】
    Spring Cloud 一:服务注册与发现(Eureka)【Dalston版】
    mybatis 单个参数
    医院设置(图论Floyd)
    Mysql学习——安装登录
    字母游戏(搜索)
    子数列连续和
  • 原文地址:https://www.cnblogs.com/hushaojun/p/4309005.html
Copyright © 2011-2022 走看看