在 lombok.config 上添加 LombokGeneratedAnnotation 不会忽略 Jacoco 报告上的 Lombok 注释

问题描述 投票:0回答:5

我在我的根目录中创建了一个

lombok.config
文件,内容如下:

config.stopBubbling = true
lombok.addLombokGeneratedAnnotation = true

但是 Lombok 生成的代码(Getters、Setters、Builders 等)仍然出现在我的 Jacoco 测试报告中。

Jacoco 版本是 0.8.6 和 Lombok 版本是 1.18.12.

如何从报告中删除 Lombok 代码?

java unit-testing junit lombok jacoco
5个回答
2
投票

我遇到了同样的问题,添加了

lombok.addLombokGeneratedAnnotation = true
Lombok在编译过程中仍然没有添加任何
@Generated
注释。它生成了所有的 getter 和 setter,但没有一个被注释。因此,如果没有 getter 等,我们的测试覆盖率大约是 15% 而不是 70%

解决方案是选择任何随机的 Lombok 注释并将其用作

@lombok.Getter
而不是导入
import lombok.Getter;
然后使用
@Getter
。我不知道为什么它会以某种方式触发在应该添加注释的地方添加
@Generated
注释,但是嘿,如果它有效,它就有效。


1
投票

我犯了一个愚蠢的错误,但我对此的解决方案只是先进行清理,然后再进行构建。我认为 gradle 对它构建的内容很聪明,仅仅引入 lombok.config 不足以触发重建。一旦完成,它就可以正常工作了。


0
投票

使用

@lombok.XXX
而不是导入
import lombok.Getter;

真的解决问题了。

但是,经过我的测试,

升级 lombok 到 org.projectlombok:lombok:1.18.26+

问题也可以解决


-1
投票

您不需要添加任何配置属性,只需添加

@Generated
注释以及
@Data
.


-1
投票

使用

lombok.addLombokGeneratedAnnotation = false
构建一次,这将导致构建失败且覆盖率低(假设您配置了此类规则)。

失败后,将

lombok.addLombokGeneratedAnnotation
设置回
true
。任何连续的构建都应该再次开始通过。

无法解释为什么会这样,一定是 Lombok 的 bug。

© www.soinside.com 2019 - 2024. All rights reserved.