jacoco + ant远程统计(tomcat/spring boot)服务的代码覆盖率
output=file时,需要shudown服务才能dump出jacoco.exec文件
declare -x CATALINA_OPTS="-javaagent:/data/jacoco/lib/jacocoagent.jar=includes=*,output=file,destfile=/data/jacocoExec/jacoco_gateway.exec"
address可以填写hostname或ip,填ip时需要注意,查看/etc/hosts的hostname映射的ip是什么
6、output=tcpserver时,查看tcpserver有没有启来
netstat -tunlp|grep 8457
Spring Boot服务
启动命令如下:
java -javaagent:/data/jacoco/lib/jacocoagent.jar=includes=*,output=tcpserver,port=8457,address=172.16.1.31 -jar springboot-xxx.jar
ant任务配置
配置jacocoAnt.xml文件
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="JaCoCo" default="run" xmlns:jacoco="antlib:org.jacoco.ant">
- <!--Jacoco的安装路径-->
- <property name="jacocoAntPath" value="/opt/jacoco/lib/jacocoant.jar"/>
- <!--最终生成.exec文件的路径,Jacoco就是根据这个文件生成最终的报告的-->
- <property name="jacocoExecPath" value="/data/jacocoExec"/>
- <!--生成覆盖率报告的路径-->
- <property name="jacocoReportPath" value="/data/jacocoReport"/>
- <!--远程tomcat服务的ip地址 xxx.xx.xxx.163(172.16.1.31)-->
- <property name="server_ip_test163" value="172.16.1.31"/>
- <!--前面配置的远程tomcat服务打开的端口,要跟上面配置的一样-->
- <property name="server_port_cybs" value="8456"/>
- <property name="server_port_gateway" value="8457"/>
- <!--源代码路径-->
- <property name="gatewaySrcPath" value="/data/jacocoSrc/Gateway/GATEWAY/fi-website/src/main/java"/>
- <property name="cybsSrcPath" value="/data/jacocoSrc/cybs/src/main/java"/>
- <!--.class文件路径-->
- <property name="gatewayClassesPath" value="/data/jacocoClasses/gateway/WEB-INF/classes"/>
- <property name="cybsClassesPath" value="/data/jacocoClasses/cybs/WEB-INF/classes"/>
- <!--让ant知道去哪儿找Jacoco-->
- <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
- <classpath path="${jacocoAntPath}"/>
- </taskdef>
- <target name="run">
- <echo message="start..."/>
- <echo message="dump..."/>
- <antcall target="dump"/>
- <echo message="merge..."/>
- <antcall target="merge"/>
- <echo message="report..."/>
- <antcall target="report"/>
- <echo message="end..."/>
- </target>
- <!--dump任务:
- 根据前面配置的ip地址,和端口号,访问目标tomcat服务,并生成.exec文件。-->
- <target name="dump">
- <jacoco:dump address="${server_ip_test163}" reset="true" destfile="${jacocoExecPath}/jacoco_gateway.exec" port="${server_port_gateway}" append="false"/>
- <jacoco:dump address="${server_ip_test163}" reset="true" destfile="${jacocoExecPath}/jacoco_cybs.exec" port="${server_port_cybs}" append="false"/>
- </target>
- <target name="merge">
- <jacoco:merge destfile="${jacocoExecPath}/merged.exec">
- <fileset dir="${jacocoExecPath}" includes="*.exec"/>
- </jacoco:merge>
- </target>
- <!--jacoco任务:
- 根据前面配置的源代码路径和.class文件路径,
- 根据dump后,生成的.exec文件,生成最终的html覆盖率报告。-->
- <target name="report">
- <jacoco:report>
- <executiondata>
- <file file="${jacocoExecPath}/merged.exec"/>
- </executiondata>
- <structure name="JaCoCo Report">
- <group name="gateway coverage">
- <sourcefiles encoding="UTF-8">
- <fileset dir="${gatewaySrcPath}"/>
- </sourcefiles>
- <classfiles>
- <fileset dir="${gatewayClassesPath}"/>
- </classfiles>
- </group>
- <group name="cybs coverage">
- <sourcefiles encoding="UTF-8">
- <fileset dir="${cybsSrcPath}"/>
- </sourcefiles>
- <classfiles>
- <fileset dir="${cybsClassesPath}"/>
- </classfiles>
- </group>
- </structure>
- <html destdir="${jacocoReportPath}" encoding="utf-8"/>
- <csv destfile="${jacocoReportPath}/report.csv"/>
- <xml destfile="${jacocoReportPath}/report.xml"/>
- </jacoco:report>
- </target>
- </project>
执行ant任务
ant -f jacocoAnt.xml
<jacoco:dump address="${server_ip_test163}" reset="true" destfile="${jacocoExecPath}/jacoco_gateway.exec" port="${server_port_gateway}" append="false"/>
reset=true时,会在dump出exec文件后,清空覆盖率数据;
append=false时,dump出的exec文件会覆盖原有的exec文件;append=true时,dump出的exec文件追加至原有的exec文件;
结果展示:
- + cd /data/jacocoAntXml
- + ant -f jacocoAnt.xml
- Buildfile: /data/jacocoAntXml/jacocoAnt.xml
- run:
- [echo] start...
- [echo] dump...
- dump:
- [jacoco:dump] Connecting to /172.16.1.15:8457
- [jacoco:dump] Dumping execution data to /data/jacocoExec/jacoco_gateway.exec
- [jacoco:dump] Connecting to /172.16.1.15:8456
- [jacoco:dump] Dumping execution data to /data/jacocoExec/jacoco_cybs.exec
- [jacoco:dump] Connecting to /172.16.1.15:8470
- [jacoco:dump] Dumping execution data to /data/jacocoExec/jacoco_creditCardBank.exec
- [jacoco:dump] Connecting to /172.16.1.15:8459
- [jacoco:dump] Dumping execution data to /data/jacocoExec/jacoco_mps.exec
- [jacoco:dump] Connecting to /172.16.1.15:8451
- [jacoco:dump] Dumping execution data to /data/jacocoExec/jacoco_accounting.exec
- [jacoco:dump] Connecting to /172.16.1.15:8458
- [jacoco:dump] Dumping execution data to /data/jacocoExec/jacoco_ordercenter.exec
- [jacoco:dump] Connecting to /172.16.1.15:8453
- [jacoco:dump] Dumping execution data to /data/jacocoExec/jacoco_notification.exec
- [jacoco:dump] Connecting to /172.16.1.15:8454
- [jacoco:dump] Dumping execution data to /data/jacocoExec/jacoco_poss.exec
- [echo] merge...
- merge:
- [jacoco:merge] Loading execution data file /data/jacocoExec/jacoco_accounting.exec
- [jacoco:merge] Loading execution data file /data/jacocoExec/jacoco_creditCardBank.exec
- [jacoco:merge] Loading execution data file /data/jacocoExec/jacoco_cybs.exec
- [jacoco:merge] Loading execution data file /data/jacocoExec/jacoco_gateway.exec
- [jacoco:merge] Loading execution data file /data/jacocoExec/jacoco_mps.exec
- [jacoco:merge] Loading execution data file /data/jacocoExec/jacoco_notification.exec
- [jacoco:merge] Loading execution data file /data/jacocoExec/jacoco_ordercenter.exec
- [jacoco:merge] Loading execution data file /data/jacocoExec/jacoco_poss.exec
- [jacoco:merge] Loading execution data file /data/jacocoExec/merged.exec
- [jacoco:merge] Writing merged execution data to /data/jacocoExec/merged.exec
- [echo] report...
- report:
- [jacoco:report] Loading execution data file /data/jacocoExec/merged.exec
- [jacoco:report] Writing bundle 'webgate coverage' with 701 classes
- [jacoco:report] Writing bundle 'gateway coverage' with 198 classes
- [echo] end...
- BUILD SUCCESSFUL
jacoco + ant远程统计(tomcat/spring boot)服务的代码覆盖率的更多相关文章
- Jacoco远程统计tomcat服务(Windows系统)的代码覆盖率
Jacoco远程统计tomcat服务(Windows系统)的代码覆盖率 2017-09-21 目录 1 Jacoco的安装和设置 1.1 什么是Jacoco? 1.2 Jacoco安装 1.3 ...
- .net core + eureka + spring boot 服务注册与调用
.net core + eureka + spring boot 服务注册与简单的调用 假期小长假遇上疫情只能去家里蹲了,刚好有时间总结一下. 概述 微服务架构是当前比较火的分布式架构,本篇基于.ne ...
- Https系列之二:https的SSL证书在服务器端的部署,基于tomcat,spring boot
Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http ...
- windows环境下,spring boot服务使用docker打包成镜像并推送到云服务器私有仓库
最近在淘宝上学习springcloud教程,其中有几节课是讲解讲本地springboot服务打包成镜像并推送到云服务器私有仓库,但是教程里面用的事Mac环境,我的是Windows环境,而且课程里面没有 ...
- 【docker】docker部署spring boot服务,但是docker logs查看容器输出控制台日志,没有日志打印,日志未打印,docker logs不打印容器日志
如题: docker部署spring boot服务,但是docker logs查看容器输出控制台日志,没有日志打印,日志未打印,docker logs不打印容器日志 场景再现: docker部署并启动 ...
- 【docker】centOS7上部署的mysql和spring boot服务,要求,mysql的时间、java程序服务的时间和宿主机的时间完全保持一致【修改mysql时区,临时和永久】【修改spring boot配置文件时区】【修改docker启动spring boot实例程序时区】
要求:centOS7上部署的mysql和spring boot服务,要求,mysql的时间.java程序服务的时间和宿主机的时间完全保持一致: ============================ ...
- 启动/关闭Spring boot服务脚本
启动Spring boot服务脚本 #!/bin/bash cd /test java -jar test.jar &> ./test.log & echo "成功&q ...
- Java框架Spring Boot & 服务治理框架Dubbo & 应用容器引擎Docker 实现微服务发布
微服务系统架构实践 开发语言Java 8 框架使用Spring boot 服务治理框架Dubbo 容器部署Docker 持续集成Gitlab CI 持续部署Piplin 注册中心Zookeeper 服 ...
- 【转载收藏】使用Jacoco远程统计tomcat服务的代码覆盖率
在做软件开发的时候经常会遇到做各种测试,这里介绍一种本人遇到的:代码覆盖率测试, 这个测试非常实用,能发现许多无效的模块和代码.强烈推荐!!!!! 网上好多资料都不全,而且没有详细的配置流程 本文将简 ...
随机推荐
- Oracle的substr函数简单用法(转)
转:http://www.cnblogs.com/nicholas_f/articles/1526063.html substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('H ...
- django shell的基本使用
作者:python技术人 博客:https://www.cnblogs.com/lpdeboke/ 在日常工作再发中,经常需要测试一些对象.函数.类...等是否正确,但是如果整体运行项目特别麻烦,并且 ...
- [BZOJ 3110] [luogu 3332] [ZJOI 2013]k大数查询(权值线段树套线段树)
[BZOJ 3110] [luogu 3332] [ZJOI 2013]k大数查询(权值线段树套线段树) 题面 原题面有点歧义,不过从样例可以看出来真正的意思 有n个位置,每个位置可以看做一个集合. ...
- 洛谷 - P3649 - 回文串 - 回文自动机
https://www.luogu.org/problem/P3649 #include <bits/stdc++.h> using namespace std; typedef long ...
- vim插件YouCompleteMe安装
这里在ubuntu16.4下安装的需要提前安装cmake clang python3sudo apt-get install clang 因为不能访问google,安装时,安装go的插件会访问goo ...
- javaweb各种框架组合案例(九):springboot+tk.mybatis+通用service
一.项目结构 二.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...
- Java虚拟机——Class类文件结构
Class文件格式采用一种类似C语言结构体的结构来存储数据,这种数据结构只有两种数据类型:无符号数和表. 无符号数属于基本的数据类型,数据项的不同长度分别用u1, u2, u4, u8表示, ...
- rabbit例子
https://blog.csdn.net/csm201314/article/details/76377214 #include <SimpleAmqpClient/SimpleAmqpCli ...
- 阿里云轻应用云服务器配置tomcat
#etc/profile export CATALINA_HOME=/wocloud/tomcat_cluster/tomcat1/apache-tomcat-7.0.57 #查看防火墙状态 fire ...
- MAN VGEXTEND
VGEXTEND(8) VGEXTEND(8) NAME/名称 vgexten ...