zoukankan      html  css  js  c++  java
  • jacoco,检查代码覆盖率

    目的:检查代码覆盖率,包括对语句的覆盖,对分支或者条件的覆盖等等

    实现原理:1、服务器上采集收据

                      2、采集数据和本地源码做匹配

                      3、浏览器展示匹配结果

    使用工具:Sonar5.4:覆盖结果展示;

                     Jacoco7:用于在服务器端产生覆盖数据;

                     命令行方式处理匹配结果;

                     JDK1.8

                     SonarQube Scanner 3.2;

    一、服务器环境搭建

    1、下载Jacoco并解压上传至服务器(linux)

    http://www.eclemma.org/jacoco/index.html

    2、在gsxdb.properties文件中加入:指定javaangent的安装位置,指定结果文件jacoco.exec(运行后生成此文件)的位置。

     -javaagent:XX/lib/jacocoagent.jar=destfile=XX/jacoco.exec

    3、检验是否部署成功:

    例gs项目:ps -ef | grep Main_Gs

    刷新安装目录,查看是否生成了jacoco.exe文件,如果有此文件,则部署成功。

      

    4、做功能测试时,需要关闭进程获取结果文件jacoco.exec. 

    二、本地环境搭建

    1、下载SonarQube并解压到本地。

    http://www.sonarqube.org/downloads/ 

    2、开启SonarQube:进入本地操作系统对应的目录,如本地操作系统为windows64位,则进入D:aotusonarqube-5.4inwindows-x86-64,双击StartSonar.bat启动SonarQube。

    3.验证SonarQube是否正常运作:浏览器访问http://localhost:9000/ ,然后登陆,用户名:admin,密码:admin。 

    4、进入对应的源码项目,

    1)将服务器下载的jacoco.exec,放入目录中

    2)新增配置文件:sonar-project.properties,设置项目的参数,供Sonar读取,以及Class文件的地址和结果文件的地址,供Sonar-Scanner读取。

     

    脚本代码参考

    # must be unique in a given SonarQube instance
    sonar.projectKey=gs
    # this is the name displayed in the SonarQube UI
    sonar.projectName= gs
    #sonar.language=java
    sonar.projectVersion=1.0
    
    # Path is relative to the sonar-project.properties file. Replace "" by "/" on Windows.
    # Since SonarQube 4.2, this property is optional if sonar.modules is set.
    # If not set, SonarQube starts looking for source code from the directory containing
    # the sonar-project.properties file.
    sonar.sources=.
    #sonar.binaries=C:/Users/Administrator/Desktop/codes/web/yyxw/WebRoot/WEB-INF/classes/com
    sonar.java.binaries=项目class文件
    # Encoding of the source code. Default is default system encoding
    sonar.sourceEncoding=UTF-8
    
    #Set jacoco Configuration
    #Code coverage tool
    sonar.java.coveragePlugin=jacoco
    #Path to the JaCoCo report file containing coverage data by unit tests. The path may be absolute or relative to the project base directory
    sonar.jacoco.reportPath=项目路径/jacoco.exec
    #Path to the JaCoCo report file containing coverage data by integration tests. The path may be absolute or relative to the project base directory
    sonar.jacoco.itReportPath=项目路径/jacoco.exec
    #sonar.jacoco.reportMissing.force.zero
    sonar.jacoco.reportMissing.force.zero=false

    5、下载SonarQube Scanner:Sonar插件,读取sonar-project.properties用于扫描源码,将Jacoco数据结果文件对应到源码中去。SonarScanner最新版本是4.2,但需jdk11了。咱们的环境是jdk8,只能用SonarScanner3.2。

    https://docs.sonarqube.org/pages/viewpage.action?pageId=11641634&navigatingVersions=true 

    6、安装SonarQube Scanner:将压缩包解压,粘贴复制到SonarQube所在文件夹,将文件合并即可。

    7、将Sonar的bin文件目录加到系统环境变量中

    8、验证环境变量是否加入成功:打开cmd,直接输入sonar-scanner.bat出现图中界面即成功。

    9、cmd执行匹配结果

    打开项目及sonar-project.properties文件所在目录

    cd [项目代码路径],并在此路径下启动sonar,执行sonar-scanner.bat。

    10、注意查看dos界面打印信息,如果有错误信息,具体查看报错原因。

    执行完是Excution Success。

     

    11、登录http://localhost:9000,打开匹配的项目,不同的颜色对应不同的覆盖程度,颜色越红覆盖得越少,颜色越绿,覆盖得越多,点击不同的版块,可以看到版块内部的覆盖情况。

  • 相关阅读:
    公号文章模板
    css 网格线
    刷题笔记-图-图的存储
    PAT Advanced A1021 Deepest Root (25) [图的遍历,DFS,计算连通分量的个数,BFS,并查集]
    PAT Advanced 1013 Battle Over Cities (25) [图的遍历,统计连通分量的个数,DFS,BFS,并查集]
    PAT Advanced 1076 Forwards on Weibo (30) [图的遍历,BFS,DFS]
    PAT Advanced 1034 Head of a Gang (30) [图的遍历,BFS,DFS,并查集]
    堆排序
    PAT Advanced 1155 Heap Paths (30) [DFS, 深搜回溯,堆]
    PAT Advanced 1098 Insertion or Heap Sort (25) [heap sort(堆排序)]
  • 原文地址:https://www.cnblogs.com/cherish010/p/11812809.html
Copyright © 2011-2022 走看看