jacoco jar包代码覆盖率 CodeCoverage平台配置

一、功能

  • jacoco:主要用于手动或自动化测试时,收集jar包代码覆盖率
  • CodeCoverage平台: 代码覆盖率展示的平台,方便查看

二、配置步骤

1、 目标机器(测试代码布置机器),创建class/lib(jar包)同步源

登陆目标机器:

sudo vi /etc/rsyncd.conf

rsyncd.conf不存在时,可新建

新增配置:

[codeCoverageSync]
path = /home/q/www/myproject/webapps/ROOT/WEB-INF/classes
ignore errors
read only = yes
hosts allow = *.beta.com

同步class源路径
path = /home/q/www/myproject/webapps/ROOT/WEB-INF/classes

同步jar包源路径 注意将本示例中的myproject修改为对应工程的目录名称
path = /home/q/www/myproject/webapps/ROOT/WEB-INF/lib

检查是否启动

ps -ef|grep rsync

服务器要确认已经安装rsync服务,若未启动

sudo rsync --daemon /etc/rsyncd.conf

2、 修改目标机器startenv

在export JAVA_OPTS中加入:

-javaagent:/tmp/jacocoagent.jar=includes=*,output=tcpserver,port=10002,address=l-myproject.h.beta.com(替换为目标机器)

//参数说明:
/tmp/jacocoagent.jar jar文件路径,与你存放的jar文件路径保持一致
includes:表示针对指定的class进行覆盖率数据收集
append=true/false:每一次收集的覆盖率数据是追加还是替换,默认为true
output:导出代码覆盖率数据方式,默认有file、tcpserver和tcpclient,导出文件格式为.exec,默认为file导出
address:选项,应用机器ip

更多参数配置可参考:http://www.eclemma.org/jacoco/trunk/doc/agent.html

3、 上传jacoco至目标服务器

jacocoagent.jar
1、下载到本地

2、rz 上传至目标服务器 //存放目录与步骤2指定的jar路径保持一致, /tmp/jacocoagent.jar

三、CodeCoverage平台配置

平台访问地址

http://l-test11.beta.com:8000/

1、新增平台配置

git@gitlab.com:myproject/code_coverage_tools.git

修改serverlist.conf,新增一行引入本次新增配置,以分号分割:
1.应用名(可自己指定,与build.xml保持一致)
2.工程名(与git一致)
3.机器名
4.sync名
例如

myprojectp;h_myproject;l-myproject1.h.beta.com;codeCoverageSync

使用qdr发布

http://qdr.corp.qunar.com/job/unit_hs_qa_code_coverage_tools

2、新增build.xml配置文件

登录test11,新建build_xxx.xml配置文件,xxx必须以数字结尾,如下所示的myprojectauto1

cd /home/q/jacoco/lib
cp build.xml build_myprojectauto1.xml

<project default="rebuild" name="myprojectauto1">
        <description>
          Example Ant build file that demonstrates how a JaCoCo coverage report
          can be itegrated into an existing build in three simple steps.
        </description>

        <property location="/home/q/www/codecoverage/templates/myprojectauto1report/" name="result.dir" />
        <property location="/home/q/www/codecoverage/templates/myprojectauto1report/" name="result.report.dir" />
        <property location="/home/q/www/codecoverage/templates/myprojectauto1report/hslistauto1.exec" name="result.exec.file" />
        <property location="/home/q/www/codecoverage/source/javasource/myprojectauto1/src/main/java/" name="src.dir" />
        <property location="/home/q/www/codecoverage/source/classsource/myprojectauto1/classes/" name="result.classes.dir" />


        <taskdef resource="org/jacoco/ant/antlib.xml" uri="antlib:org.jacoco.ant">
                <classpath path="/home/q/jacoco/lib/jacocoant.jar" />
        </taskdef>

        <target name="clean">
                <delete dir="${result.dir}" />
        </target>

        <target name="dump">
                <ns0:dump address="l-test11.tc.beta.com" append="true" destfile="${result.exec.file}" port="10002" reset="false" xmlns:ns0="antlib:org.jacoco.ant" />
        </target>

        <target name="report">
               <ns0:report xmlns:ns0="antlib:org.jacoco.ant">

                       <executiondata>
                                <file file="${result.exec.file}" />
                        </executiondata>

                        <structure name="hslistauto1">
                                <classfiles>
                                        <fileset dir="/home/q/www/codecoverage/source/classsource/hslistauto1/classes">
                                        <include name="hslist-rank-1.1.85.jar" ></include>
                                        </fileset>
                                </classfiles>
                                <sourcefiles>
                                        <fileset dir="/home/q/www/codecoverage/source/javasource/hslistauto1/hslist_rank/src/main/java/" />
                               </sourcefiles>
                        </structure>

                        <html destdir="${result.report.dir}" />
                        <csv destfile="${result.report.dir}/report.csv" />
                        <xml destfile="${result.report.dir}/report.xml" />
                </ns0:report>
        </target>

        <target depends="clean,report" name="rebuild" />

</project>
替换上述配置文件中的myprojectauto1为你的待测工程名称,myprojectauto1rank 待测jar包名称,myprojectauto1-rank-1.1.0.jar 待测jar版本
build.xml 测试命令
sudo ant dump -buildfile xxxx.xml
sudo ant dump -buildfile xxxx.xml



cd /home/q/www/codecoverage/source/classsource
mkdir xxxx1
cd /home/q/www/codecoverage/source/javasource
mkdir xxxx1
git clone xxxx.git#待测jar工程代码地址
将上述代码拷贝至/home/q/www/codecoverage/source/javasource/xxxx1/

修改:很简单自己看着
/home/q/www/codecoverage/codecoverage/urls.py
/home/q/www/codecoverage/platformtodel/call_shell.py
/home/q/www/codecoverage/templates/index.html
新建:
/home/q/www/codecoverage/templates/xxx1report 文件夹

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值