• jacoco-2-jenkins集成代码测试覆盖率


    前言

    基于上一篇,我们便可以集成到jenkins进行构建。

    必备环境:

    一、jacoco 与 java 服务

    实际是自己的一个demo服务,实际使用中是运维那边起的服务,那么就可以让他们配置一下ant,以及服务启动时多加一个参数。

    1、将 jacoco-0.8.6.zip 包解压到任意目录,如下:/root/jenkins/data:

     2、拿到 java 源码里面的demo-V1024.jar包:

    启动时增加的参数:

    -javaagent:/root/jenkins/data/jacoco-0.8.6/lib/jacocoagent.jar=includes=*,output=tcpserver,port=9999,address=0.0.0.0,append=false

    我的测试服务启动:

    nohup java -javaagent:/root/jenkins/data/jacoco-0.8.6/lib/jacocoagent.jar=includes=*,output=tcpserver,port=9999,address=0.0.0.0,append=false -jar demo-V1024.jar > java.log 2>&1

    二、jenkins配置

    本篇是基于docker-jenkins进行安装配置,与war包等其它方式大同小异。

    1、安装 jacoco、ant、maven 插件

    ①jacoco:

    ②ant:

    ③maven:

     2、全局工具配置mvn配置文件

    settings.xml是mvn的配置文件,增加了aliyun的源,这样能下载包更快些。

    当然你也可以在jenkins的mvn conf目录下进行更改。

     3、ant、mvn 安装配置

     三、新建 jenkins job

    1、新建job名称为:jacoco

    2、设置 git 代码地址:https://github.com/git-gsxl/jacoco-demo.git

     3、新增 mvn 配置

    ①添加 mvn 步骤(需要点击“高级”展开)

     ② 配置 mvn 参数

    compile:是将Java 源程序编译成 class 字节码文件

     4、新增 ant 配置

    ①添加 ant 步骤

     ②配置 ant 参数(需要点击“高级”展开)

    参数:

    • Ant Version:ant选择全局工具配置的版本
    • Targets:运行的dump
    • Build File:jenkins-build.xml,因为这里有多个xml文件所以需要指定
    • Properties:构建的参数
      • jacocoantPath:jacocoant.jar包文件路径  
      • jacocoexecPath:jacoco生成的exec文件路径
      • server_ip:后端起服务时增加的i参数:ip
      • server_port:后端起服务时增加的i参数:端口
      • reset:是否重置jmv覆盖率数据,布尔值
      • append:是否增量,布尔值
    jacocoantPath=/var/jenkins_home/data/jacoco-0.8.6/lib/jacocoant.jar
    jacocoexecPath=$WORKSPACE/target/coverage/jacoco.exec
    server_ip=47.xxx.xxx
    server_port=9999
    reset=ture
    append=ture

    因为我是docker-jenkins,所以容器内部前面我已经把jacoco目录挂载到了jenkins/data下面。

    所以我jacoco在容器的这个路径:/var/jenkins_home/data/jacoco-0.8.6/lib/jacocoant.jar

    jacocoantPath:是在工作目录下的,所以是:$WORKSPACE/target/coverage/jacoco.exec

    5、jacoco报告配置

    ①添加 jacoco报告 步骤

     ②配置 jacoco报告 参数

    6、保存 job,并构建。

    构建首次会很慢,因为要拉取git、下载ant、maven。

    运行可以先访问一下java代码服务的接口,这样构建后才有覆盖率,不然为空。

     

    如果觉得ant、maven下载很慢,那么可以自行下载好包,挂载到 jenkins 目录,进行配置。

    欢迎来大家QQ交流群一起学习:482713805

  • 相关阅读:
    Byobu(tmux)的使用与定制
    Centos 编译安装Python 2.6
    how to set up the remote accout who to connection and management mysql server
    CentOS安装python2.6以及MySQLpython
    byobu "屏风" 简介 ,以及在CentOS下安装及日常使用
    /bin/rm: cannot remove `libtoolT': No such file or directory
    MySQLpython EnvironmentError: mysql_config not found | InfoEntropy
    几个逼真的页面 watch out
    Emerge详细解释
    微软Internet TV初体验
  • 原文地址:https://www.cnblogs.com/gsxl/p/13881427.html
Copyright © 2020-2023  润新知