操作步骤:

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

  git clone  {代码地址}

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

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

   cd /xx/xx/xx/xx

  2)meven打包:

   mvn clear 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文件;

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】  

<?xml version="1.0" encoding="UTF-8"?>
<project name="Jacoco" xmlns:jacoco="antlib:org.jacoco.ant" default="jacoco">
<!--Jacoco 的安装路径-->
<property name="jacocoantPath" value="{xxxxxxxxxx}"/>
<!--最终生成 .exec 文件的路径,Jacoco 就是根据这个文件生成最终的报告的-->
<property name="jacocoexecPath" value="{xxxxxxxxxxx}"/>
<!--生成覆盖率报告的路径-->
<property name="reportfolderPath" value="{xxxxxxxxxxxxxx}"/>
<!--源代码路径-->
<property name="checkOrderSrcPath" value="{xxxxxxxxxxxxxxxxx}" />
<!--.class 文件路径-->
<property name="checkOrderClasspath" value="{xxxxxxx\target\classes}" />

<!--让 ant 知道去哪儿找 Jacoco-->
<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
<classpath path="${jacocoantPath}" />
</taskdef>

<!--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="Check Order related">
<classfiles>
<fileset dir="${checkOrderClasspath}">
<!-- 过滤不必要的文件 -->
<exclude name="**/R.class"/>
<exclude name="**/R$*.class"/>
<exclude name="**/*$ViewInjector*.*"/>
<exclude name="**/BuildConfig.*"/>
<exclude name="**/Manifest*.*"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${checkOrderSrcPath}" />
</sourcefiles>
</group>
</structure>
<html destdir="${reportfolderPath}" encoding="UTF-8" />
<csv destfile="${reportfolderPath}/coverage-report.csv" encoding="UTF-8"/>
<xml destfile="${reportfolderPath}/coverage-report.xml" encoding="UTF-8"/>
</jacoco:report>
</target>
</project>

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

    ant report -buildfile build.xml

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

jacoco生成覆盖率报告的更多相关文章

  1. maven单测生成覆盖率报告---Jacoco的使用

    JaCoCo介绍 一.JaCoCo简述 JaCoCo是一个开源的覆盖率工具,它针对的开发语言是java,其使用方法很灵活,可以嵌入到Ant.Maven中:可以作为Eclipse插件,可以使用其Java ...

  2. jacoco生成覆盖率

    要统计自动化的覆盖率,所以临时看了下jacoco,记录下过程.后续用的时候方便查看. 1.build.gradle中修改 apply plugin: 'jacoco' android { buildT ...

  3. jacoco 生成单测覆盖率报告

    一.jacoco 简介 jacoco 是一个开源的覆盖率工具,它针对的开发语言是 java.其使用方法很灵活,可以嵌入到 ant.maven 中:可以作为 Eclipse 插件:可以作为 javaAg ...

  4. Sonar在ant工程中读取单元测试和覆盖率报告

    虽然sonar支持ant工程的构建,但目前最大的不足是无法在分析过程中产生单元测试和覆盖率报告,这样在sonar面板上覆盖率板块就始终没有数据.但幸运的是,sonar可以读取已经生成好的报告,让报告的 ...

  5. Jenkins无法读取覆盖率报告的解决方法

    报错信息如下: log 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 coverage-report: [mkdir] Cre ...

  6. [转载]Matlab生成Word报告

    最近在进行一批来料的检验测试,一个个手动填写报告存图片太慢了,就有了种想要使用Matlab在分析完后数据可以自动生成PDF报告的想法,于是就去网上搜索了相关的资料,发现Matlab中文论坛上有xiez ...

  7. ORACLE AWR概述及生成AWR报告

    1.Overview of the Automatic Workload Repository The Automatic Workload Repository (AWR) collects, pr ...

  8. 生成awr报告

    主要参考文献: http://343766868.blog.163.com/blog/static/48314056201110124513396/ 概况 Oracle内部以一定的频率把系统关键的统计 ...

  9. 自动生成AWR报告

    --自动生成AWR报告 -------------------2013/09/23   脚本代码:   #!/bin/bash   AWR_FORMAT=html NUM_DAYS=1   MAX_S ...

随机推荐

  1. CommandParameter binding Introduction:

    Design Patterns SampleCode https://csharpdesignpatterns.codeplex.com/ DevExpress Support Center http ...

  2. ASP.NET MVC4使用JCrop裁剪图片并上传

    需要用到的jquery插件Jcrop .Jquery.form 百度webuploader插件( http://fex.baidu.com/webuploader/ ) 引用下载好的css和js文件 ...

  3. git 笔记-初始化

    进入项目所在的文件夹 git init git remote add origin https://github.com/enderlu/test.gitgit push -u origin mast ...

  4. 快速写入Xml文件

    我们在做一些操作的时候会需要生成日志,Xml文件就是我们常用的一种日志文件. 普通操作Xml文件的代码遇到大数据量的话就很慢了. 用这个生成Xml文件的话,即使数据量很大,也很快 private vo ...

  5. 操作XML文档遇到的XMLNS问题及解决方法 (C# 和 PHP)

    原文:操作XML文档遇到的XMLNS问题及解决方法 (C# 和 PHP) 不管是用 PHP 还是 C#, 在操作 XML 的时候我们除了一个节点一个节点去取值之外, 还有一个非常方便的表达式, 就是 ...

  6. 麻省理工的 Picture 语言:代码瘦身的秘诀

    直击现场 如今,机器学习算法已经进入了主流的计算机,而麻省理工学院正在研究一款让每日的编程变得更加简单的技术. MIT 研究者将在六月发布一款新的叫做 Picture 的编程语言,当计算机在视频或者图 ...

  7. 为什么使用剪切板时都用GlobalAlloc分配内存(历史遗留问题,其实没关系了)

    我在使用剪切板时,发现通用的都是使用GlobalAlloc来分配内存,我就想不是说在Win32中GlobalAlloc和LocalAlloc是一样的那为什么不用LocalAlloc呢,原谅我的好奇心吧 ...

  8. c#自定义业务锁

    我们有这样的使用场景,某个订单在修改信息的时候,其他人不能修改相关的信息,比如不能做支付,不能退单等等,那么我们可以根据单号进行加锁,多Monitor做了如下扩展 定义接口 //// 文件名称:ILo ...

  9. Codility---Brackets

    Task description A string S consisting of N characters is considered to be properly nestedif any of ...

  10. Spring Type Conversion(Spring类型转换)

    Spring Type Conversion(Spring类型转换) 1:概述: Spring3引入了core.convert包,提供了通用类型转换系统,定义了实现类型转换和运行时执行类型的SPI. ...