测试工具--Jacoco

可参考文档:jacoco统计自动化代码覆盖率

1.结合AnT

build.xml配置如下,主要包括Jacoco的安装路径,最终生成.exec文件的路径,生成覆盖率报告report的路径,远程监听服务ip和端口以及源代码路径和.class文件路径;

build.xml配置如下:

2.监听注入:

2.1上传jacocoagent.jar到被监听服务的服务器;

2.2编辑被监听服务(tomcat服务)的start.sh文件,给JAVA_OPTS参数添加如下内容:

-javaagent:/export/App/Jco/jacocoagent.jar=includes=com.jd.*,output=tcpserver,port=4374,address=192.168.156.92

参数说明如下: 
1) -javaagent: 的后面跟jacoco的安装路径 
2) includes= 选项,选择你要覆盖率的服务,也就是包名 
3) port=,选择你要打开的端口,jacoco的端口,与所对应的tomcat端口不能一样,与其他端口也不能冲突 
4) address= tomcat服务所在机器的ip地址(如果想在跟tomcat服务同一台机器上执行ant任务的话,需要改为127.0.0.1) 
5) -Xverify:none,避免启动报错的情况 
这样配置后就将jacoco嵌入到了tomcat中,到时候tomcat起来后,就通过开放的端口,来访问jacoco检测到的数据。正常启动tomcat,jacoco就在实时监测tomcat中运行的war包,此时数据全部存放在内存中。
 3.生成报告

执行命令:

3.1 ant dump;-----获取远程监听服务生成的jacoco.exec

3.2 ant report;-----根据生成的jacoco.exec文件生成report文件

4 报告解析

报告数据包括:函数覆盖,语句覆盖()

参考博客:

jacoco统计自动化代码覆盖率_fjl19900121的博客-CSDN博客_jacoco

build.xml配合如下:

<?xml version="1.0" ?>
<project name="test" xmlns:jacoco="antlib:org.jacoco.ant" >
    <!--Jacoco的安装路径-->
  <property name="jacocoantPath" value="D:\program\ANT\jacoco-0.8.3\lib\jacocoant.jar"/>
  <!--最终生成.exec文件的路径,Jacoco就是根据这个文件生成最终的报告的-->
  <property name="jacocoexecPath" value="D:\program\ANT\jacoco-0.8.3\target\jacoco.exec"/>
    <!--生成覆盖率报告的路径-->
  <property name="reportfolderPath" value="D:\program\ANT\jacoco-0.8.3\report\"/>
  <!--远程tomcat服务的ip地址-->
  <property name="server_ip" value="192.168.156.01"/>
  <!--前面配置的远程tomcat服务打开的端口,要跟上面配置的一样-->
  <property name="server_port" value="4374"/>
  <!--源代码路径可以包含多个源代码 (在服务部署所在的服务器上)  -->  
  <property name="webSrcpath" value="D:\源代码路径\src\main\java" /> 

  <!--.class文件路径可以包含多个(在服务部署所在的服务器上)-->
  <property name="webClasspath" value="D:\编译后的代码路径\target\classes"/>


  <!--让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">   
             <!--此处配置classes文件地址 -->        
                  <classfiles>
                      <fileset dir="${webClasspath}" />
                  </classfiles>
                  <!--此处配置源码地址 -->
                    <sourcefiles encoding="gbk">
                      <fileset dir="${webSrcpath}" />
                  </sourcefiles>
              </group>

          </structure>

          <html destdir="${reportfolderPath}" encoding="utf-8" />         
      </jacoco:report>
  </target>
</project>

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值