zoukankan      html  css  js  c++  java
  • java服务覆盖率统计 jacoco ant

    ● 下载jacoco.exec、jacocoant.jar、jacocoagent.jar

    ● jvm启动参数中添加(tomcat服务原理一样)


    JACOCO_OPTS=JAVA_OPTS="-javaagent:[jacocoagent.jar你的地址]=includes=com.*,output=tcpserver,port=8044,address=10.*.*.* -Xverify:none"
    ● 启动服务

    java $JAVA_OPTS -Djava.rmi.server.hostname=10.*.*.*  -jar ROOT.jar  --server.port=8080
    ● 下载工程源码
    ● 安装ant
    ● 配置build.xml

    <?xml version="1.0" ?>
    <project name="coverage" xmlns:jacoco="antlib:org.jacoco.ant" >
        <!--Jacoco的安装路径-->
      <property name="jacocoantPath" value="/srv/jacocoant.jar"/>
      <!--最终生成.exec文件的路径,Jacoco就是根据这个文件生成最终的报告的-->
      <property name="jacocoexecPath" value="/srv/jacoco.exec"/>
        <!--生成覆盖率报告的路径-->
      <property name="reportfolderPath" value="/srv/report/"/>
      <!--远程tomcat服务的ip地址-->
      <property name="server_ip" value="10.*.*.*"/>
      <!--前面配置的远程tomcat服务打开的端口,要跟上面配置的一样-->
      <property name="server_port" value="8044"/>
      <!--源代码路径可以包含多个源代码-->
      <property name="webSrcpath" value="/srv/service/src/main/java/" />
      
      <!--.class文件路径可以包含多个--class文件要填写部署在服务器上的路径,jar包要解压>
      <property name="webClasspath" value="/home/" />
     
    
      <!--让ant知道去哪儿找Jacoco-->
      <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
          <classpath path="${jacocoantPath}" />
      </taskdef>
    
      <!--dump任务:
          根据前面配置的ip地址,和端口号,
          访问目标tomcat服务,并生成.exec文件。-->
    
      <target name="dump">
          <jacoco:dump address="${server_ip}" reset="false" destfile="${jacocoexecPath}" port="${server_port}" append="true"/>
      </target>
      
      <!--jacoco任务:
          根据前面配置的源代码路径和.class文件路径,
          根据dump后,生成的.exec文件,生成最终的html覆盖率报告。-->
    
      <target name="report">
          <delete dir="${reportfolderPath}" />
          <mkdir dir="${reportfolderPath}" />
          
          <jacoco:report>
              <executiondata>
                  <file file="${jacocoexecPath}" />
              </executiondata>
                  
              <structure name="JaCoCo Report">
                  <group name="Launch related">           
                      <classfiles>
                          <fileset dir="${webClasspath}" />
                      </classfiles>
                      <sourcefiles encoding="gbk">
                          <fileset dir="${webSrcpath}" />
                      </sourcefiles>
                  </group>
              </structure>
    
              <html destdir="${reportfolderPath}" encoding="utf-8" />         
          </jacoco:report>
      </target>
    </project>
    • 执行ant dump ,生成exec文件
    • 执行ant report  ,生成html报告
  • 相关阅读:
    人生如此
    微软十七道智力面试题及答案
    【Flink系列十】Flink作业提交过程的调试和诊断
    【Flink系列九】Flink 作业提交遇到的问题记录以及原理
    Jackson ObjectMapper JSON序列化工具使用笔记,由浅入深
    既有设计模式的lambda重构
    观察者模式/Observer
    函数式接口java.util.function
    面向对象世界的七个设计原则
    重构-改善既有代码设计读后灵光
  • 原文地址:https://www.cnblogs.com/paisen/p/7827059.html
Copyright © 2011-2022 走看看