
jacoco
文章平均质量分 83
dray_
这个作者很懒,什么都没留下…
展开
-
解决jacoco agent遇到反射的问题
这个方法很容易实现,如果是你个开发的话,恭喜你解决了问题,但是我猜在看的各位大部分是测试,所以你还得继续看下去,听我继续啰嗦,作为一个工具侧,不可能通知所有业务线开发进行业务逻辑的变更,一个是工作量不小,二个是推进太难,所以面对大量的即存业务代码,我们只能尝试其他解决方案。3. 方案三,给你的反射偷偷做个手脚,我们进行插桩就是修改类的字节码,那我们是不是同时可以修改我们反射做个修改,让我们的反射过滤掉$jacocoData字段,恭喜你,找到了究极解决方案。这是我们插桩后返回的属性。这是我们的业务底代码。原创 2024-11-21 14:45:40 · 1238 阅读 · 12 评论 -
jacoco插桩源码,看这一篇就够了
jacoco的插桩是一个大家都知道的事情,但是其具体实现是怎样的,怎样干预其过程呢?就需要我们对源码进行解读。原创 2023-11-11 13:38:24 · 4365 阅读 · 0 评论 -
jacoco多版本报告合并
jacoco提供了一个merge命令可以给我方便的合并代码无变更时的报告,但是一旦代码发生变化,则无法通过jacoco进行直接合并,原因在《》中已经说明,那么针对一次功能测试,势必会进行多轮,每一轮针对变更的数据进行覆盖率增量报告,这是没有什么问题的,但是对于一些需求可能需要展示整个测试的覆盖报告,怎么将变更类的报告也进行合并呢?这就是本文讨论的问题。原创 2023-08-04 12:24:42 · 5961 阅读 · 18 评论 -
jacoco的多次代码提交merge分析
jacoco的merge命令主要用来合并dump生成的exec文件,具体实施场景为分布式集群环境时由于覆盖请求负载到不同的机器上产生多个exec文件后我们再做merge操作,从何获取到代码的整体覆盖率,具体操作如下图所示:但是官方明确了,只有相同代码生成的exec文件才能做merge操作,那么如下场景我们需要怎么做呢?比如说:项目发测了,第一轮测试dump生成了exec文件后面又进行了两轮测试,从而生成了三份exec文件,而我想查看本次整体测试的代码覆盖率怎么办呢,jacoco官方不知道原创 2021-03-19 17:35:49 · 8179 阅读 · 12 评论 -
jacoco dump基于k8s的实现
虽然能从一定程度解决问题,但是这样生成报告的节奏就会被打断,就不能随时生成报告了,这里提供一种解决方式。当我们使用k8s部署服务后,应用实例将会无状态话,用户不再去关心实例的ip,端口等信息,service自动会帮我们做负载均衡等操作,pod不会暴露出ip和端口等信息给集群外部访问,这样对我们的dump操作带来了困难。通过以上手段就可以主动去dump出想要的数据,当然更好的方式是判断exec文件是否存在,或者还在写入中,等写入完成再去获取文件,这个操作也可以通过shell去完成,本文只是提供一种实现方案。原创 2023-04-28 13:38:28 · 2023 阅读 · 0 评论 -
jacoco单测报告怎么同步到sonarqube
这里我们看看配置的两个关键点,当生命周期test-compile,即单测编译时触发jacoco的初始化,当生命周期verify时就对jacoco报告进行生成。sonarqube支持多种代码覆盖率的报告展示,最常用的当属jacoco报告,那么jacoco的报告怎么同步到我们的sonarqube中呢?使用上就是这么简单,当然在集成上也会有一些坑,比如springboot运行junit5会出现无法触发的问题等。此命令会触发单测,verify命令会触发报告,然后通过。原创 2022-11-24 11:35:45 · 2225 阅读 · 0 评论 -
jacoco之java api调用
我们在使用jacoco的时候,除了使用命令行的方式,可能需要把jacoco的方法嵌入到我们应用程序,自定义一些步骤,有很多小伙伴对这种调用方式很迷惑,这里简单demo,供大家参开下,具体api的方法可以参考官网环境准备我们使用api的方式使用jacoco,首先需要知道我们要做什么动作,比如我们需要生成报告1.引入jacoco core和report包(如果需要使用增量,请使用我的代码编译出的包)这里有个小问题是,core打包的时候是排除了依赖包的,所以我们这里需要将core的依赖包重新引用下原创 2021-08-26 15:53:14 · 2575 阅读 · 0 评论 -
jacoco 增量方案使用说明书
鉴于上篇jacoco增量覆盖率实践实现了差异代码获取和jaocco二开后,很多咨询我的是测试的小伙伴,对java可能不太熟悉,想要直接使用又赶脚稍许迷茫,所以又写下这边文章来帮助迷茫中的小伙伴拉 组件说明 首先说明一下实现此增量方案所依赖的组件原生jacoco知识 code-diff服务 jacoco二开cli包首先你需要了解jacoco的实现步骤,知道单元测试覆盖率和功能测试覆盖率,而我们通常讲的增量覆盖率一般讲的也是功能测试覆盖率其实单元测试和功能测试其实分别对应jacoco的o原创 2021-05-27 12:41:42 · 8669 阅读 · 27 评论 -
jacoco增量覆盖率实践
Jacoco增量覆盖率说明能找到这里,说明对jacoco的原理和使用有了一定的了解,而我写这边文章主要是网络上基本没有完整文档加代码的jaocco增量覆盖说明,所以我想分享些东西让需要这方面的人快速去实现自己想要的功能,那么如果想实现增量代码覆盖率需要做到哪些工作呢?(格式难看到这里看http://note.youdao.com/s/6gM8ONX3)大家在网络上找到的实现方式无外乎三种获取到增量代码,在jacoco进行插桩时判断是否是增量代码后再进行插桩,这样需要两个步骤,一是获取增量代码,二原创 2021-01-14 15:46:01 · 27590 阅读 · 22 评论