jacoco统计自动化测试代码覆盖率

摘要:
启动tomcat服务,sh/bin/startup。sh;假设tomcat服务是10.210230.26:8074 III。运行tomcat服务IV.ant的构建。xml[html]viewplaincopy˂!

一.下载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,如下:

jacoco统计自动化测试代码覆盖率第1张


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

免责声明:文章转载自《jacoco统计自动化测试代码覆盖率》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux svn命令具体解释JDBC高级特性(一)结果集,批量更新下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用Jacoco获取 Java 程序的代码执行覆盖率

Jacoco是Java Code Coverage的缩写,顾名思义,它是获取Java代码执行覆盖率的一个工具,通常用它来获取单元测试覆盖率。它通过分析Java字节码来得到代码执行覆盖率,因此它还可以分析任何基于JVM的语言(如Croovy、Kotlin)的覆盖率。本文不讨论如何用Jacoco获取单元测试的代码覆盖率,而是从Jacoco的原理出发,介绍如何通...

Visual Studio 2010单元测试(2)--运行测试并查看代码覆盖率

Visual Studio 2010 单元测试--运行测试并查看代码覆盖率 运行测试并查看代码覆盖率对程序集中的代码运行测试时,可以通过收集代码覆盖率数据来查看正在测试的项目代码部分。 运行测试并查看代码覆盖率请注意“解决方案资源管理器”中的解决方案的名称。假定解决方案的名称为 CUnitTest。 此解决方案包含测试代码。1)在“解决方案资源管理器”的“...

mock测试及jacoco覆盖率

单元测试是保证项目代码质量的有力武器,但是有些业务场景,依赖的第三方没有测试环境,这时候该怎么做Unit Test呢,总不能直接生产环境硬来吧? 可以借助一些mock测试工具来解决这个难题(比如下面要讲的mockito),废话不多说,直奔主题: 一、准备示例Demo 假设有一个订单系统,用户可以创建订单,同时下单后要检测用户余额(如果余额不足,提醒用户充值...

PhpUnit9.5环境搭建和覆盖率

PhpUnit1.环境搭建 l通过Ide下载安装phpunit 2.自动载入 lPHPUnit提供了一个参数--bootstrap,可以使用项目的autoload文件。这里我自己写了一个最简单的autoload.php,只要4行。这个文件并不是PHPUnit专用的,应该放在app目录下。 <?phpfunction __autoload($cl...

推荐系统指标评测——覆盖率与基尼系数的算法与应用

评测指标是衡量推荐系统优劣的数据支持,目前应用广泛的有:点击率、转化率、精准率、召回率、F1值、覆盖率、多样性等等。不同的指标衡量的标准和目的是不一样的...今天就来介绍一下覆盖率和多样性是如何计算和应用的。 更多推荐系统资源,请参考——《推荐系统那点事儿》 覆盖率 如何评价推荐系统的优劣,可以通过推荐的内容覆盖率来衡量。当然它并不是唯一的准则....覆盖...

JaCoCo代码覆盖率从0到100的入门实践

JaCoCo全称是Java Code Coverage,Java代码覆盖率,广泛运用于各种测试平台对Java代码的全量覆盖率和增量覆盖率进行统计,分析代码行差异,度量单元测试效果。Jacoco也是精准测试的技术实现手段之一。 入门实践的目标是写点简单代码,再加点单元测试,把JaCoCo跑起来,输出测试报告,看代码覆盖率是怎么回事,了解基本的运行流程。 先写...