Lombok注解导致EcclEmma在Eclipse中无法显示代码覆盖
Eclipse+Lombok下EcclEmma代码覆盖标记不显示的解决办法
更新Lombok与EcclEmma版本
你当前使用的Lombok 1.18.24和Eclipse 2022-03可能存在兼容性偏差。建议将Lombok升级到适配Eclipse 2022-03的最新兼容版本(如1.18.30及以上),同时更新EcclEmma插件到支持当前Eclipse版本的最新版,确保两者的字节码处理逻辑匹配。添加Lombok生成代码过滤规则
在Eclipse中打开Window > Preferences > Java > Code Coverage,在Filters标签页中添加以下规则:- 排除
lombok.*包下的所有类 - 针对Lombok生成的方法(如
equals(Object)、hashCode()、所有getter/setter、自动生成的构造器等),添加方法签名匹配规则(如*equals(Object)、*hashCode())。
配置后EcclEmma会跳过Lombok自动生成的代码,只专注于你编写的业务代码,正确显示绿色覆盖标记。
- 排除
启用Lombok生成注解标记
在项目根目录创建lombok.config文件,添加以下配置:lombok.addLombokGeneratedAnnotation=true该配置会让Lombok在自动生成的方法上添加
@lombok.Generated注解,EcclEmma默认会忽略带有此注解的代码,避免生成代码干扰原生业务代码的覆盖标记显示。清理重建项目
执行Project > Clean清理项目编译缓存,再执行Project > Build Project重新编译,之后重新运行JUnit测试,验证覆盖标记是否正常显示。
内容的提问来源于stack exchange,提问作者Woodsman
相关产品推荐
相关产品推荐

