首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

lombok.config上的addLombokGeneratedAnnotation不会忽略Jacoco报告上的Lombok注释

lombok.config上的addLombokGeneratedAnnotation是Lombok框架中的一个配置选项,用于控制是否在生成的代码中添加Lombok生成的注解。当设置为true时,Lombok会在生成的代码中添加一个特殊的注解,用于标识该代码是由Lombok生成的。这个注解可以帮助开发人员识别哪些代码是由Lombok自动生成的,从而更好地理解和维护代码。

在使用Jacoco进行代码覆盖率测试时,有时会遇到Lombok注解被Jacoco报告误报的情况。这是因为Jacoco在生成报告时会将Lombok注解也视为代码的一部分,从而导致代码覆盖率计算不准确。为了解决这个问题,Lombok提供了addLombokGeneratedAnnotation选项。

通过在lombok.config文件中设置addLombokGeneratedAnnotation=false,可以告诉Lombok在生成的代码中不添加Lombok生成的注解。这样,Jacoco在生成报告时就会忽略Lombok注解,从而得到准确的代码覆盖率。

需要注意的是,关闭addLombokGeneratedAnnotation选项可能会导致一些IDE的功能受限,因为IDE可能依赖于Lombok生成的注解来提供代码补全、重构等功能。因此,在关闭该选项之前,建议先了解自己的开发环境和项目的具体需求。

关于Lombok的更多信息和使用方法,可以参考腾讯云的Lombok产品介绍页面:Lombok产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Lombok有毒慎用?会导致覆盖率崩塌?

当然凡事都有两面性,Lombok引入也是有代价。一时注释一时爽,结果导致代码在不知不觉中翻了好几倍。...这其中尤其是@Data这个注解,会附带相当多方法。 默认情况下,由于Jacoco不会区分Lombok生成代码和正常源代码。结果,在引入Lombok后就会发现,覆盖率通常会低得让人匪夷所思。...5 使用lombok.addLombokGeneratedAnnotation 其实从Jacoco 0.8.0开始,其实就具备了可以将lobmok生成代码从Jacoco报告中排除能力。...发布说明可以参见 https://github.com/jacoco/jacoco/pull/513 具体做法是,在项目的根目录下新建一个名字为lombok.config文件,里面有如下内容, config.stopBubbling...= true lombok.addLombokGeneratedAnnotation = true Lombok在为由其生成构造方法、方法、字段和类型中增加@Generated注解,然后Jacoco

5.1K10

基于Jacoco三种增量覆盖率统计方法

方案1 -Agent插桩时 Jacoco 在进行 prepare-agent 时,接受调用者通过使用 excludes 参数来忽略某些类,例如可以该方式来自动忽略 Lombok 自动生成代码,避免统计结果中代码膨胀...其后再生成覆盖率统计报告自然而然就是增量报告了。 开源项目如滴滴开源 super-jacoco就是采用了这种方案,并对原生 jacoco 进行了功能增强,形成覆盖率统计平台。...方案3-解析Jaococo报告 在打桩和报告环节对 jacoco 进行改造,进而形成增量覆盖率方案,都需要对 jacoco 进行二次开发,技术门槛相对较高,且后续 Jacoco 发行新版本,二次开发版本也需要额外进行升级维护...此外如果目标项目中已经引入了 jacoco 开展了单元测试覆盖率统计,还牵涉到如何说服用户配合去修改既有的 jacoco 配置以适配二次开发后 jacoco 工具问题,存在推广实施门槛。...这个工具原先主要用于分析 C++覆盖率统计报告,经过笔者提需求之后,已经支持了对 jacoco 报告解析从而可以用于 Java项目的增量覆盖率统计。

51610

Lombok 有哪些坑 ?

以一个近 6000 行代码业务系统举例,是否修复该问题并编写对应测试用例,可以使整体 jacoco 分支覆盖率提高 10%~15%。...相反地,由于这个注解在 jacoco 下只算一行代码,未覆盖行数倒不会太多。 2.3 解决 有几种解决方法可以参考: 不使用该注解。...重写父类 equals() 方法,确保父类不会调用或使用类似实现 Ojbect equals()。...3.2 解决方法 用了 @data 就不要有继承关系,类似 kotlin 做法,具体探讨见下一节 自己重写 equals(),lombok 不会对显式重写方法进行生成 显式使用 @EqualsAndHashCode...根据一章讨论,equals() 实现实际是受业务场景影响,无论是否使用父类属性做比较都是有可能

4.2K20

Android自动化测试探索(五)代码覆盖率统计

覆盖率监测原理 覆盖率监测原理跟iOS原理差不多,大致思路参考下吧, iOS自动化探索(十)代码覆盖率统计 Android使用JaCoCO覆盖率统计工具 jacoco 原理篇 必要知识储备或条件...(此处忽略若干依赖库) //代码覆盖率jacoco(可不引入) // compile 'org.jacoco:org.jacoco.core:0.7.9' } //代码覆盖率相关配置.../build/intermediates/javac/debug/compileDebugJavaWithJavac/classes' executionData设置,自定义生成报告路径及报告名称...,既然设定,在指定目录下需要有这样文件,文件夹及文件名称都要一一对应,不可粗心输错; 注意以上注释位置,每一个配置务必加上以保证检测代码覆盖率实现; 步骤4:确认APP有开启文件读写权限 在AndroidManifest.xml...报告一般在app\build\reports目录 ? 打开里面的index.html就是我们要报告了 ?

1.1K40

super-jacoco单元测试覆盖率度量实践-1

(增量)单元测试覆盖率统计实现过程分析 通常在网络可见介绍Super-Jacoco文章主要是围绕系统测试覆盖率统计来展开,估计这也是这个工具主要用户群体。...具体又是如何实现呢? 笔者下载了Super-Jacoco源码简单地进行了一下阅读分析,并尝试进行一下解读。 处理过程: Super-Jacoco使用了很多状态码来标志单测覆盖率分析任务进展。...import lombok.Data; /** * @description: * @author: gaoweiwei_v * @time: 2019/9/23 10:16 AM */ @...branchCoverage; private String errMsg; private String logFile; } 包括了代码行覆盖率和分支覆盖率这两个关键数据,以及覆盖率报告下载链接和本次任务执行日志文件下载链接...从步骤分析,可以看到需要完成以下工作, 1、代码库下载、代码增量分析:这部分是关于Git操作 2、添加模块:这是对pom.xml文件操作,类似的操作文件还包括了对jacoco生成覆盖率报告解析

1.3K50

Java代码质量检查

report Junit Test结果报告 JaCoCo test coverage 代码测试覆盖率插件 阿里巴巴Java代码扫描插件P3C(PMD) cpd 重复代码扫描 Findbugs 通用Java...需要注意是: 1.Jacoco覆盖率,目前只配置了全局行覆盖和分支覆盖,不添加阈值则为0,修改阈值实现覆盖率控制。可以过滤不需要扫描文件,比如生成java文件。...在代码里通过注解或者注释忽略扫描: 1.1 checkstyle忽略 忽略单独代码模块,比如spring security配置 //CHECKSTYLE:OFF public void someMethod...事实,我们应该都切换为LocalDate或LocalDateTime,但总有遗留代码采用Date,此时可以忽略扫描 修改配置文件https://github.com/Ryan-Miao/code-quality-verify-demo...阿里Java检查报告: ? checkstyle编码规范报告: ? 3 检查阈值 site命令会生成对应report,但实际开发中,我们会期望出现错误时停止构建,提醒开发者修复问题。

2.7K20

Sonar Scanner系列之架构与Java篇

,如安全、插件等 项目、视图质量快照数据 SonarQube Plugin 安装在服务端插件,例如语言包、SCM、认证、治理等等 SonarScanner 在构建和持续集成服务器执行并分析项目...配套,我们通过SonarQube官方提供SonarQube Scanner for Maven这个插件来进行代码扫描,如果还要得到单元测试和代码覆盖率报告,那么还需要使用Maven Surefire...配置单元测试执行报告路径,修改最外层pom.xml 场景一:单个module工程 ..........2)为了确保工程有单元测试执行结果,以便于让Sonar统计测试结果,需要忽略失败测试结果,强制让Maven surefire插件生成测试报告 mvn clean test -Dmaven.test.failure.ignore...如何忽略用例, a) 忽略某个modules工程,在该module下配置 true 即可 b) 忽略如测试用例或其它某些package或.java文件

4.8K32

Sonar Scanner系列之架构与Java篇

,如安全、插件等 项目、视图质量快照数据 SonarQube Plugin 安装在服务端插件,例如语言包、SCM、认证、治理等等 SonarScanner 在构建和持续集成服务器执行并分析项目...配套,我们通过SonarQube官方提供SonarQube Scanner for Maven这个插件来进行代码扫描,如果还要得到单元测试和代码覆盖率报告,那么还需要使用Maven Surefire...配置单元测试执行报告路径,修改最外层pom.xml 场景一:单个module工程 ..........2)为了确保工程有单元测试执行结果,以便于让Sonar统计测试结果,需要忽略失败测试结果,强制让Maven surefire插件生成测试报告 mvn clean test -Dmaven.test.failure.ignore...如何忽略用例, a) 忽略某个modules工程,在该module下配置 true 即可 b) 忽略如测试用例或其它某些package或.java文件

4.8K30

SonarQube测试覆盖率--Java

但是,SonarQube 不会自行生成覆盖率报告。相反,您必须设置第三方工具以在生成过程中生成报表。...然后,您需要配置分析以告知 SonarScanner 报告位置,以便它可以拾取报告并将其发送到 SonarQube,在那里它将与其他分析指标一起显示在您项目仪表板。...调整您设置 要启用覆盖范围,您需要: 调整构建过程,以便 JaCoCo 报告生成步骤在 SonarScanner 步骤之前运行。 确保 JacCoCo 将其报告文件写入生成环境中定义路径。...如果需要更改生成报告目录,可以使用 Maven 开关在命令行设置属性:-D mvn -Dsonar.coverage.jacoco.xmlReportPaths= .....jacoco-maven-plugin 如果要将所有特定于模块报告聚合到一个项目级报告中,最简单解决方案是创建一个特殊Maven模块(以及您已有的模块),该模块除了使用该目标的模块外,什么都不包含

2.3K30

JAVA代码覆盖率工具JaCoCo-实践篇

但是Android系统破坏了JaCoCo这种便利性,原因有两个: (1)Android虚拟机不同与服务器JVM,它所支持字节码必须经过处理支持Android Dalvik等专用虚拟机,所以插桩必须在处理之前完成...在插桩前,应该对项目构建过程做一个总体熟悉,了解下每个target作用,这样才能确定不会影响各个插桩点,不会遗漏,否则会在打包过程中出现各种各样问题。...文件,实现插件代码插桩修改 1.4 打覆盖率包 Jekin已经配置好了jacoco_package任务 ?...1.7 分析覆盖率结果 网上关于JaCoCo覆盖率报告分析有不少文章可以学习。...这里阐明几个自己观点: 根据项目的不同,在分析结果前先应该明确几个事情,包括 (1) 确定改动点范围,根据这个范围才会有针对性做分析。 (2) 改动点是否影响功能逻辑,如果不影响可以忽略

7.5K92

Android增量代码测试覆盖率工具

第一个问题比较容易解决,分别生成两组Java文件(一部分结尾得到两组文件A、B)语法树,并对方法(去掉注释和空行)进行MD5,MD5不同方法,便认为该方法在这次提交中发生了变化。...新增代码覆盖率报告 生成代码覆盖率报告,首先想到就是JaCoCo,下面分别介绍一下JaCoCo原理和我们所做改造。...JaCoCo通过ASM在字节码中插入Probe指针(探测指针),每个探测指针都是一个BOOL变量(true表示执行、false表示没有执行),程序运行时通过改变指针结果来检测代码执行情况(不会改变原代码行为...JaCoCo源码了。...自动获取运行时数据 刚才讲JaCoCo原理时候提到,需要运行时数据才能生成覆盖率报告

1.8K90

JaCoCo增量覆盖率基本实现原理

增量获取方式有两种: 版本对比:在分支,第2次提交和第1次提交版本对比增量代码,就是DonController;第2次提交和刚从master拉取分支时版本对比增量代码,除了DonController...HTML报告。.../report 第1个参数:jacoco.exec文件路径; 第2个参数:class文件路径; 第3个参数:src源码路径; 第4个参数:报告存放地址; JaCoCo也提供了OpenApi来生成报告。...二是class,在生成报告时,会将class和src进行比对,以统计覆盖率,只有当class和src完全匹配才能得到准确覆盖率,假如我们自己拉最新代码进行编译得到class,由于编译环境和版本影响...,编译出来class说不定跟src就不匹配了,统计结果也就不会准确。

3.2K11

Gradle For Android(6)--测试单元

\junit-dep-4.10.jar 这个错误指的是Gradle不能完成构建,因为有多个相同文件。幸运是,它只是一个License描述,所以我们可以在构建中忽略它。...这个任务会和connectedAndroidTest任务一起执行,在设备执行Debug Build中所有测试任务,并且创建DebugCoverageReport报告。...Report 功能测试报告会展示Device和Android版本。你可以同时在多个设备执行这些测试任务,所以这些设备信息会更好查找到设备或者版本单独Bug。...Jacoco 覆盖率报告是否生效是非常容易,只需要在Build Type中设置testCoverageEnabled = true即可。..." } 然而,Jacoco不需要显式指定一个版本,Jacoco也可以工作。

1.7K40

一不小心就踩了lombok坑?

通过上面的对比我们可以看出@Data注解帮我们生成了 注在类,提供类get、set、equals、hashCode、canEqual、toString方法,这个注解确实比较方便。...在比较加上@EqualsAndHashCode(callSuper = true) callSuper = true 会包含父类equals 和 hashCode方法 我们可以对比下加上@EqualsAndHashCode...最终通过查询资料发现我们我们写一个lombok.config配置文件放在我们项目的根目录下面,内容写上lombok.equalsAndHashCode.callSuper = call效果等同于@EqualsAndHashCode...(callSuper = true),这样的话我们就不需要为每个类都去加上这个注释了,相当于在这个项目下面只要用到了@Data注解类都会为其加上@EqualsAndHashCode(callSuper...在关于hashCode和equals 阿里巴巴开发手册也有明确说到 ? lombok 用起来还是挺爽,但是还是有一些细节需要稍微注意下。

49820

软件测试|SonarQube 安装、配置及 JaCoCo、Maven 集成

此外, SonarQube 插件还可以对 Java 以外其他编程语言提供支持,对国际化以及报告文档化也有良好支持。...Sonar 实际是一个 Web 系统,展现了静态代码扫描结果,结果是可以自定义,而真正实现代码扫描是 Sonar Scanner 这个工具,另外同时支持多种语言原理是它扩展性,通过插件实现...修改 sonar.properties在 /conf/sonar.properties 文件中,配置数据库设置(默认已经提供了各类数据库支持这里使用 MySQL,因此取消 MySQL 模块注释),同时因为端口冲突而改成端口为...,连单元测试覆盖率统计也生成出来了,主要原因为在该maven项目之前已经集成了Jacoco插件(具体Maven与Jacoco集成请参考我另外一篇文章)。...2.该集成方案其实还是首先通过maven package 命令去生成对应覆盖率报告,然后通过sonar scanner直接使用该覆盖率报告并通过一定算法加工并展示到SonarQube界面上去。

1.1K20

vivo 基于 JaCoCo 测试覆盖率设计与实践

它们不会改变方法行为,但会记录它们已被执行事实。...下面以一段简单 程序为例进行说明:这段代码经过Java编译以后转化为以下字节码:因为Java 字节码指令线性序列,控制流是通过条件或无条件指令实现跳转,跳转目标在技术是相对于目标指令偏移量。...上图中橙色部分为插入探针,理论我们可以在控制流图每个边缘插入一个探针,由于探针实现本身需要一些字节码指令,这将会使类文件大小增加数倍;幸运是,这不是必需,实际我们只需要根据方法控制流为每个方法插入几个探针...JaCoCo计算逻辑,针对增量代码单独统计覆盖率指标值改造JaCoCo报告格式,在报告中兼容全量代码和增量代码覆盖情况对于计算代码分支变动情况,放弃 GitLab 提供代码比对功能来获取不同版本之前差异信息...,会出现以类为单元覆盖率数据丢失,需要测试人员来回重复执行测试案例,否则测试覆盖率数据不会很好看。

1.2K20

lombok踩坑记

注在类,提供类get、set、equals、hashCode、canEqual、toString方法,这个注解确实比较方便。...解决问题 手动重写equals和hashCode方法,这种方法肯定是不推荐,我们既然用了lombok就是为了解放我们双手,是代码变得更加简洁。...在比较加上@EqualsAndHashCode(callSuper = true) callSuper = true 会包含父类equals 和 hashCode方法 我们可以对比下加上@EqualsAndHashCode...最终通过查询资料发现我们我们写一个lombok.config配置文件放在我们项目的根目录下面,内容写上lombok.equalsAndHashCode.callSuper = call效果等同于@EqualsAndHashCode...(callSuper = true),这样的话我们就不需要为每个类都去加上这个注释了,相当于在这个项目下面只要用到了@Data注解类都会为其加上@EqualsAndHashCode(callSuper

43000
领券