Java代码覆盖率工具之Jacoco

JaCoCo(Java Code Coverage)是一款面向Java语言的开源代码覆盖率工具,以其小型化和轻量化著称。它能够提供代码在测试过程中的覆盖率信息,帮助开发人员和测试人员识别未测试的代码部分,从而提高代码质量和测试的完整性。JaCoCo可以嵌入到AntMaven等构建工具中,也可以作为Eclipse插件使用,或者通过JavaAgent技术监控Java程序

一、工作原理

JaCoCo通过对Java字节码进行插桩来收集覆盖率信息。插桩有两种主要方式:离线(offline)在线(on-the-fly)

  • 离线模式:在编译时对代码进行插桩,生成插过桩的class或jar包。在测试这些插过桩的文件后,生成动态覆盖信息文件,最后统一处理这些覆盖信息并生成报告。
  • 在线模式:在应用启动时加入JaCoCo agent进行插桩,实时地进行代码覆盖率分析。这种方式适用于开发和测试人员在使用应用期间进行覆盖率监测。

JaCoCo在执行测试用例时收集程序执行轨迹信息,并通过数据处理器结合程序执行轨迹信息和代码结构信息生成代码覆盖率报告。这些报告可以以html、xml等格式展示,便于开发人员和测试人员查看和分析。

二、在线模式

下载Jacoco:首先,您需要从官网下载Jacoco的最新版本。

可以从Jacoco的官方网站下载最新版本的Jacoco安装程序。

首先,解压缩已下载的JaCoCo安装程序:

unzip jacoco-0.8.12.zip

接下来,使用以下命令来启动应用程序并插桩:

java -javaagent:/opt/jacoco/lib/jacocoagent.jar=includes=*,output=tcpserver,port=6333,address=localhost,append=true -jar /opt/IAM_JAVA/IAM/src/MyApp.jar

命令说明:

  • /opt/jacoco/lib/jacocoagent.jar:JaCoCo代理JAR文件的安装目录。
  • output=tcpserver:表示以TCP服务器模式启动应用程序并进行插桩。
  • port=6333:JaCoCo TCP服务器的端口号(注意:原文中端口号为6333,但此处已更正为6300,以保持与命令中的端口号一致)。
  • address=localhost:TCP服务器的访问地址,可以配置为127.0.0.1或实际访问的IP地址。
  • /opt/IAM_JAVA/IAM/src/MyApp.jar:要运行的应用程序JAR文件。

在应用程序运行期间,使用以下命令生成覆盖率文件:

java -jar /opt/jacoco/lib/jacococli.jar dump --address localhost --port 6333 --destfile /opt/IAM_JAVA/IAM/jacoco.exec

最后,使用以下命令生成HTML格式的覆盖率报告:

java -jar /opt/jacoco/lib/jacococli.jar report /opt/IAM_JAVA/IAM/jacoco.exec --classfiles /opt/IAM_JAVA/IAM/src/bin --sourcefiles /opt/IAM_JAVA/IAM/src --html /opt/IAM_JAVA/IAM/report01

命令说明:

  • /opt/IAM_JAVA/IAM/jacoco.exec:覆盖率文件。
  • /opt/IAM_JAVA/IAM/src/bin:包含编译后的类文件的目录。
  • /opt/IAM_JAVA/IAM/src:包含Java源文件的目录。
  • /opt/IAM_JAVA/IAM/report01:生成的HTML报告的输出路径。

完成上述步骤后,您可以访问生成的index.html文件来查看覆盖率报告。报告将展示应用程序的代码覆盖率情况,如图所示。







Java代码覆盖率工具之Jacoco的更多相关文章

  1. JAVA代码覆盖率工具JaCoCo-原理篇

    JAVA代码覆盖率工具JaCoCo-原理篇 1.2 JAVA覆盖率工具介绍 1.3.3 Apache Maven方式 1.3.4 Eclipse EclDmma Plugin方式 JAVA代码覆盖率工 ...

  2. Java开发工具IntelliJ IDEA单元测试和代码覆盖率图解

    原文 http://www.cnblogs.com/xiongmaopanda/p/3314660.html Java开发工具IntelliJ IDEA使用教程:单元测试和代码覆盖率 本文将展示如何使 ...

  3. 【转】高效Java编程工具集锦

    原文地址:http://geek.csdn.net/news/detail/57469 Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松.目前,市面上涌现出越来越多的高 ...

  4. Java开发工具安装步骤内容如下

    Java开发工具安装步骤内容如下 安装 开发工具 STS 链接下载网址 eclipse 链接下载网址 JDK安装 jdk链接下载地址 Marven环境 marven链接下载地址 Tomcat tomc ...

  5. C++开源代码覆盖率工具OpenCppCoverage介绍(Windows)

    关于代码覆盖率统计工具,Linux平台下,gcc内置支持gcov,通过编译时加参数选项,进行代码插桩,从而实现代码覆盖率.在Windows平台下,早在几年前,我还没找到特别好用又开源的覆盖率工具,所以 ...

  6. JAVA开发工具eclipse中@author怎么改

    1:JAVA开发工具eclipse中@author怎么改,开发的时候为了注明版权信息. 用eclipse开发工具默认的是系统用户,那么怎么修改呢 示例如图所示 首先打开Eclipse--->然后 ...

  7. Java Properties工具类详解

    1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...

  8. Java测试工具

    1.   开源测试工具: http://www.open-open.com/43.htm 2.   10款常用的JAVA测试工具 :http://developer.51cto.com/art/200 ...

  9. Java json工具类,jackson工具类,ObjectMapper工具类

    Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...

  10. 学习java随笔第二篇:java开发工具——Eclipse

    java开发工具有很多这里我使用的是Eclipse. 首先我在官网上下载了Eclipse的软件包,下载地址:http://www.eclipse.org/downloads/,然后有在网上找了一个汉化 ...

随机推荐

  1. Docker私有仓库操作----命令行

    查看所有镜像 http://10.206.29.162:5000/v2/_catalog {"repositories":["dashboard"," ...

  2. Pycharm之使用git merge合并分支

    当我们在某个分支上代码开发完成,代码测试没问题后需要把分支上的代码合并到 master 分支上.这样保证 master 分支的代码永远都是最新的,也是最干净的,这样才可以持续的开发自己的项目.本篇讲解 ...

  3. Uri的解析

    //最基本的划分 [scheme:]scheme-specific-part[#fragment] //对scheme-specific-part进一步划分 [scheme:][//authority ...

  4. 《前端运维》五、k8s--4机密信息存储与统一管理服务环境变量

    一.储存机密信息 Secret 是 Kubernetes 内的一种资源类型,可以用它来存放一些机密信息(密码,token,密钥等).信息被存入后,我们可以使用挂载卷的方式挂载进我们的 Pod 内.当然 ...

  5. 【前端】【Vue】Vue3自适应瀑布流解决方案

    Vue3自适应瀑布流解决方案 效果如上图所示. 说明:Vue3.[vue-masonry插件](vue-masonry - npm (npmjs.com)) 建议查看官方文档vue-masonry ( ...

  6. 快速生成视频互动直播包含会议直播APP(Android)

    阿里云服务器推荐购买99元 首先此应用基于腾讯云实时音视频TRTC.注册腾讯云https://console.cloud.tencent.com/trtc 并完成实名认证开始. 安卓直播高级版 包括直 ...

  7. Qt音视频开发38-USB摄像头解码linux方案

    一.前言 做嵌入式linux上的开发很多年了,扳手指头算算,也起码9年了,陆陆续续做过很过诸如需要读取外接的USB摄像头或者CMOS摄像机的程序,实时采集视频,将图像传到前端,或者对图像进行人脸分析处 ...

  8. 《Spring Boot+Vue全栈开发实战-王松2018》一书pdf+源码下载

    下载地址为: 链接:https://pan.baidu.com/s/18lnF2KemQTqkKaCRmMbvXA 提取码:1pie 版权声明:本书版权属于出版社和作者.仅学习使用,请于下载后24小时 ...

  9. 开源即时通讯IM框架 MobileIMSDK v6.5 发布

    一.更新内容简介 本次更新为次要版本更新,进行了bug修复和优化升级(更新历史详见:码云 Release Notes.Github Release Notes). MobileIMSDK 可能是市面上 ...

  10. Solution -「NOI 2017」「洛谷 P3823」蚯蚓排队

    \(\mathscr{Description}\)   Link.   (自己看题, 我总不能让题意比题解还长吧?) \(\mathscr{Solution}\)   下一组我一定写成 solutio ...