zoukankan      html  css  js  c++  java
  • 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

    [html] view plain copy
     
    1. <?xml version="1.0" encoding="UTF-8" ?>  
    2.   
    3.   
    4. <project name="testCodeCoveage" xmlns:jacoco="antlib:org.jacoco.ant" default="report">  
    5.   
    6.         <property name="result.dir" location="/data1/hugang/tomcat/apache-tomcat-8.0.36/webapps/ROOT/WEB-INF" />  
    7.         <property name="result.classes.dir" location="${result.dir}/classes" />  
    8.         <property name="result.report.dir" location="/data1/hugang/jacocoresult/" />  
    9.         <property name="result.exec.file" location="./remote.exec" />  
    10.         <property name="resource.code" location="/data1/hugang/jacoco/sourcecode/apiservice-java-strategyapi/src/main/java/" />  
    11.   
    12.   
    13.   
    14.         <!-- Import JaCoCo Ant tasks, taskdef第三方target -->  
    15.         <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">  
    16.                 <classpath path="/data1/hugang/jacoco/lib/jacocoant.jar" />  
    17.         </taskdef>  
    18.   
    19.   
    20. <!--tomcat下bin/catalina.sh在JAVA_OPTS参数新加的   
    21. -javaagent:/data1/jacoco/lib/jacocoagent.jar=includes=*,output=tcpser  
    22. ver,port=2014,address=10.210.230.26会在这个端口上提供client访问,并能dump出此时的覆盖率数据文件:destfile-->  
    23.     <target name="dump">  
    24.         <jacoco:dump address="10.210.230.26" reset="false" destfile="${result.exec.file}" port="2014" append="false"/>  
    25.     </target>  
    26.   
    27.     <target name="report" depends="dump">  
    28.   
    29.                 <!-- Create coverage report -->  
    30.                 <jacoco:report>  
    31.                         <!-- This task needs the collected execution data and ... -->  
    32.                         <executiondata>  
    33.                                 <file file="${result.exec.file}" />  
    34.                         </executiondata>  
    35.   
    36.                         <!-- the class files and optional source files ... -->  
    37.                         <structure name="apiservice-java-strategyapi">  
    38.                              <group name="strategy">  
    39.                                  <classfiles>  
    40.                                          <fileset dir="${result.classes.dir}"/>  
    41.                                          <!-- 可以指定jar包 -->  
    42.                                          <!--  include name="*.jar"  -->  
    43.                                  </classfiles>  
    44.                                  <sourcefiles encoding="UTF-8">  
    45.                                     <fileset dir="${resource.code}"/>  
    46.                                     </sourcefiles>  
    47.                              </group>  
    48.                         </structure>  
    49.                 <!-- to produce reports in different formats. -->  
    50.                         <html destdir="${result.report.dir}" />  
    51.                 </jacoco:report>  
    52.    </target>  
    53. </project>  

    执行: ant -v

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

    生成html报告

    五.展示报告

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




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

  • 相关阅读:
    【2020Python修炼记】web框架之 Django自带的序列化组件/form组件
    【2020Python修炼记】web框架之数据批量插入/分页器
    3.栈与队列
    2.链表
    1.数组
    越来越少人用JQuery,但你就不学了吗?(4)
    越来越少人用JQuery,但你就不学了吗?(3)
    越来越少人用JQuery,但你就不学了吗?(2)
    越来越少人用JQuery,但你就不学了吗?(1)
    JS事件、Bom对象和Dom对象(4)(乐字节架构)
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/9072712.html
Copyright © 2011-2022 走看看