【发布时间】:2020-08-03 09:40:03
【问题描述】:
我有一个包含多个 maven 模块的项目,每个模块都实现了单元测试。它们通过父模块相互依赖。我正在使用 Lombok 为我的模型生成所有样板代码,并且通过单元测试,我没有涵盖这些模型上的 @Getters 和 @Setters。
我知道,要排除这些并改善您的覆盖范围,您可以添加一个设置为 lombok.addLombokGeneratedAnnotation = true 的 lombok.config。我在父模块中添加了这个,但这似乎不起作用。有没有办法为所有模块配置这个?
我还尝试在所有模块中添加不同的 lombok.config 文件,但仍然无法正常工作。这个问题主要影响 SonarQube 的覆盖范围,因为它不知道应该忽略这些未使用的 getter 和 setter。
PS:在成为多模块项目之前,该项目是一个简单的 maven 项目,并且这个 lombok.config 有效,覆盖率很好。将项目迁移到多模块方法后,单元测试中没有任何变化。
【问题讨论】:
-
我是否理解正确,您的意图是涵盖除 getter 和 setter 之外的所有方法(包括使用 lombok 注释生成的方法)?
-
我认为您的错误是假设更改父项目的 lombok 配置会以任何方式影响依赖项目的类生成结果。不是这种情况。 Lombok 只会在相应项目本身 (projectlombok.org/features/configuration) 中查找 lombok.config。由“子”项目生成的类文件将在构建时忽略“父”中的配置。
-
@TreffnonX 不,我的意图不是那样。单元测试涵盖了服务中的所有业务逻辑,根本不使用模型中的 getter 和 setter,因此,sonar 在覆盖率中抱怨这一点。我知道这可以通过使用这个配置文件配置 Lombok 来解决,但是当有多个 maven 模块时这似乎不起作用......
标签: java maven code-coverage lombok multi-module