jacoco统计自动化测试代码覆盖率

一.下载jacoco, ant工具

jacoco: http://www.eclemma.org/jacoco/;

ant: http://ant.apache.org 并添加到环境变量;

二.不停jvm, dump出覆盖率数据

在部署的tomcat服务中,/bin/catalina.sh中JAVA_OPTS参数值添加:

-javaagent:/data1/jacoco/lib/jacocoagent.jar=includes=*,output=tcpser
ver,port=2014,address=10.210.230.26

其中:/data1/jacoco/lib/jacocoagent.jar为安装jacoco的jacocoagent.jar包绝对路径;output覆盖率数据输出的形式,有file, tcpserver, tcpclient, 默认是file,file是在jvm停掉时才将覆盖率数据dump出来;address和port可以提供client访问,并dump出覆盖率数据文件, 在build.xml会使用。

启动tomcat服务,sh /bin/startup.sh;  假设tomcat服务为10.210.230.26:8074

三.使用自动化测试跑该tomcat服务

四.ant的build.xml

<?xml version="1.0" encoding="UTF-8" ?>


<project name="testCodeCoveage" xmlns:jacoco="antlib:org.jacoco.ant" default="report">

        <property name="result.dir" location="/data1/hugang/tomcat/apache-tomcat-8.0.36/webapps/ROOT/WEB-INF" />
        <property name="result.classes.dir" location="${result.dir}/classes" />
        <property name="result.report.dir" location="/data1/hugang/jacocoresult/" />
        <property name="result.exec.file" location="./remote.exec" />
        <property name="resource.code" location="/data1/hugang/jacoco/sourcecode/apiservice-java-strategyapi/src/main/java/" />



        <!-- Import JaCoCo Ant tasks, taskdef第三方target -->
        <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
                <classpath path="/data1/hugang/jacoco/lib/jacocoant.jar" />
        </taskdef>


<!--tomcat下bin/catalina.sh在JAVA_OPTS参数新加的 
-javaagent:/data1/jacoco/lib/jacocoagent.jar=includes=*,output=tcpser
ver,port=2014,address=10.210.230.26会在这个端口上提供client访问,并能dump出此时的覆盖率数据文件:destfile-->
	<target name="dump">
		<jacoco:dump address="10.210.230.26" reset="false" destfile="${result.exec.file}" port="2014" append="false"/>
	</target>

	<target name="report" depends="dump">

                <!-- Create coverage report -->
                <jacoco:report>
                        <!-- This task needs the collected execution data and ... -->
                        <executiondata>
                                <file file="${result.exec.file}" />
                        </executiondata>

                        <!-- the class files and optional source files ... -->
                        <structure name="apiservice-java-strategyapi">
                             <group name="strategy">
                                 <classfiles>
                                         <fileset dir="${result.classes.dir}"/>
                                         <!-- 可以指定jar包 -->
                                         <!--  include name="*.jar"  -->
                                 </classfiles>
                                 <sourcefiles encoding="UTF-8">
                                 	<fileset dir="${resource.code}"/>
                                 	</sourcefiles>
                             </group>
                        </structure>
                <!-- to produce reports in different formats. -->
                        <html destdir="${result.report.dir}" />
                </jacoco:report>
   </target>
</project>

执行: ant -v

最后在 destdir路径下 /data1/hugang/jacocoresult/

生成html报告

五.展示报告

将报告文件,放到apache服务器下,直接访问html,如下:




参考:http://www.eclemma.org/jacoco/trunk/doc/ant.html




  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值