You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加Lombok @Builder后测试覆盖率异常的排查与解决

Lombok @Builder导致测试覆盖率异常的问题解决

问题原因

添加@Builder注解后,IntelliJ的覆盖率工具将@Builder注解所在的行判定为未覆盖的用户代码行。尽管Lombok已为生成的Builder类、方法添加了@lombok.Generated注解,但注解本身所在的行并没有被标记为生成代码,因此覆盖率工具会将其纳入统计,导致显示“0% (0/1)”的异常结果——这里的“1”指的就是@Builder注解所在的行。

解决方案

方案1:配置IntelliJ识别Lombok的@Generated注解

IntelliJ默认不会自动识别lombok.Generated作为生成代码的标记,需要手动添加:

  1. 打开IntelliJ IDEA的设置(File > Settings,或快捷键Ctrl+Alt+S)
  2. 导航到Build, Execution, Deployment > Coverage
  3. 在Generated code区域,点击Add按钮,输入lombok.Generated并确认
  4. 重新运行覆盖率测试,此时IDE会忽略所有带有该注解的生成代码,@Builder注解所在行也会被正确排除出覆盖率统计

方案2:切换使用Javax标准的@Generated注解

修改你的lombok.config文件,替换原有配置:

config.stopBubbling = true
lombok.addJavaxGeneratedAnnotation=true

IntelliJ默认识别javax.annotation.Generated,Lombok会为所有生成代码添加该注解,覆盖率工具会自动忽略这些代码,注解所在行也不会被统计为未覆盖。

方案3:临时绕过(不推荐)

如果只是需要临时让覆盖率显示正常,可以在测试用例中显式调用Builder的完整流程:

@Test
void testBuilder() {
    User user = User.builder().id(1).name("test").build();
    assertNotNull(user);
}

这种方法只是让IDE认为注解行被“覆盖”,并未从根源解决生成代码被统计的问题,仅作为临时应急手段。


内容的提问来源于stack exchange,提问作者Julien Kronegg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 09:25:03