zoukankan      html  css  js  c++  java
  • jacoco生成覆盖率报告

    操作步骤:

    1、下载git上最新的代码到本地

      git clone  {代码地址}

    2、在服务器上打出相关服务的jar包

      1) 登上服务器,切换到目标服务所在路径:

       cd /xx/xx/xx/xx

      2)maven打包:

       mvn clean package

      3)  打包成功后,当前服务目录下ls查看会有一个target文件夹;

      4)cd切换到target目录下,有一个目标服务相关的jar包已经打好;

    3、agent模式

      1)本地下载jacoco安装包,下载地址:https://www.eclemma.org/jacoco/

      2)从jacoco包的lib文件夹中拿到jacocoagent.jar包,上传到测试服务器(xshell上传测试服务器命令:rz);

      3)   用agent方式启动服务(服务器上运行):

      ***   在目标服务jar包的目录下运行下面命令:

      java -javaagent:{jacocoagent.jar在服务器上的地址}=dumponexit=true,destfile={report1.exec文件在服务器上存放的地址} -jar {xxxx(目标服务打出的jar包).jar}

      4)服务启动后,执行测试用例,所有的用例执行完成后,停止服务,停止后在对应的目录可获得exec文件;

        停服务命令:

        ps -aux | grep  {jar包名.jar}

        kill -9   {进程号}

    4、exec文件

      1)从服务器上下载exec文件到本地(xshell从服务器下载文件到本地:sz  文件名)

      2)用IDEA打开git上下载下来的源码;

      3)  点击IDEA中Analyze中的Show Code Coverage Data,打开.exec文件,可以看到coverage结果;

    5、生成报告

      1)本地安装ant (http://ant.apache.org/),配置环境变量;

      2)本地新建build.xml文件;

      3)修改xml文件中的一些路径信息;

    【build.xml】  

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project name="Jacoco" xmlns:jacoco="antlib:org.jacoco.ant" default="jacoco">
     3 <!--Jacoco 的安装路径-->
     4 <property name="jacocoantPath" value="{xxxxxxxxxx}"/>
     5 <!--最终生成 .exec 文件的路径,Jacoco 就是根据这个文件生成最终的报告的-->
     6 <property name="jacocoexecPath" value="{xxxxxxxxxxx}"/>
     7 <!--生成覆盖率报告的路径-->
     8 <property name="reportfolderPath" value="{xxxxxxxxxxxxxx}"/>
     9 <!--源代码路径-->
    10 <property name="checkOrderSrcPath" value="{xxxxxxxxxxxxxxxxx}" />
    11 <!--.class 文件路径-->
    12 <property name="checkOrderClasspath" value="{xxxxxxx	argetclasses}" />
    13 
    14 <!--让 ant 知道去哪儿找 Jacoco-->
    15 <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
    16 <classpath path="${jacocoantPath}" />
    17 </taskdef>
    18 
    19 <!--jacoco 任务:
    20 根据前面配置的源代码路径和 .class 文件路径,
    21 根据 dump 后,生成的 .exec 文件,生成最终的 html 覆盖率报告。-->
    22 <target name="report">
    23 <delete dir="${reportfolderPath}" />
    24 <mkdir dir="${reportfolderPath}" />
    25 
    26 <jacoco:report>
    27 <executiondata>
    28 <file file="${jacocoexecPath}" />
    29 </executiondata>
    30 
    31 <structure name="JaCoCo Report">
    32 <group name="Check Order related"> 
    33 <classfiles>
    34 <fileset dir="${checkOrderClasspath}">
    35 <!-- 过滤不必要的文件 -->
    36 <exclude name="**/R.class"/>
    37 <exclude name="**/R$*.class"/>
    38 <exclude name="**/*$ViewInjector*.*"/>
    39 <exclude name="**/BuildConfig.*"/>
    40 <exclude name="**/Manifest*.*"/>
    41 </fileset>
    42 </classfiles>
    43 <sourcefiles encoding="UTF-8">
    44 <fileset dir="${checkOrderSrcPath}" />
    45 </sourcefiles>
    46 </group>
    47 </structure>
    48 <html destdir="${reportfolderPath}" encoding="UTF-8" />
    49 <csv destfile="${reportfolderPath}/coverage-report.csv" encoding="UTF-8"/>
    50 <xml destfile="${reportfolderPath}/coverage-report.xml" encoding="UTF-8"/> 
    51 </jacoco:report>
    52 </target>
    53 </project>
    View Code

      4) dos命令切换到build.xml文件所在的地址,执行:

        ant report -buildfile build.xml

      5) 生成的报告在xml文件配置的报告路径中:

    操作中遇到的问题和解决方法:

    1. 装好ant并且已经配置好环境变量,dos命令切换到ant安装路径,输入ant

     提示:Unable to locate tools.jar. Expected to find it in C:Program FilesJavajre6lib”

    ——解决方法:

    将jdk中的lib下的toos.jar文件拷贝到 C:Program FilesJavajre6lib下;

  • 相关阅读:
    1系统负荷
    动画
    日常问题记录--JSP页面中通过<s:property value="#parameters.userName[0]>获取URL参数中文时为乱码的解决办法
    linux下替换一个文件中的所有中文字符的方法
    日常问题记录--getJSON函数不执行回调函数的原因总结
    日常问题记录-- java.util.NoSuchElementException
    日常问题记录--POST时,struts2的 request.getParameter找不到参数
    日常问题记录--nested exception is java.lang.NoClassDefFoundError: org/apache/oro/text/regex/MalformedPatternExcept
    mysql系统搭建互备DB(双主)记录
    使用forEach函数绑定函数的上下文
  • 原文地址:https://www.cnblogs.com/hd-test/p/11168766.html
Copyright © 2011-2022 走看看