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下;

  • 相关阅读:
    python,生产环境安装
    neo4j 图数据库
    RNN系列
    机器学习关于AUC的理解整理
    fensorflow 安装报错 DEPENDENCY ERROR
    dubbo Failed to check the status of the service com.user.service.UserService. No provider available for the service
    使用hbase遇到的问题
    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk
    gradle 安装
    jenkins 安装遇到的坑
  • 原文地址:https://www.cnblogs.com/hd-test/p/11168766.html
Copyright © 2011-2022 走看看