【问题标题】:Lombok generated code can not be ignored on coverageLombok 生成的代码在覆盖率上不容忽视
【发布时间】:2018-10-10 08:40:31
【问题描述】:

在这里我问了一个问题:

Lombok, use only getter setter not equals or tostring

我不想在那里发表评论,因为它太旧了。

我想要的是,我希望在覆盖 inteljideasonar. 期间忽略 lombok 生成的代码

根据我之前链接的问题中的建议,我添加了这个

config.stopBubbling = true
lombok.addLombokGeneratedAnnotation = true

我将它添加到根目录,然后重建恢复。

但是对于那个班级

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(parent = BaseApiResponse.class)
public class SaveObligation extends Base{

    @ApiModelProperty(required = true)
    List<LegalObligationDTO> legalObligations;


    public SaveLegalObligatione(String id, List<LegalObligationDTO> legalObligations) {
        super(id, true);
        this.legalObligations = legalObligations;
    }
}



inteljidea shows all green (which means covered) except those lines:

@Data
@EqualsAndHashCode(callSuper = true)

我猜是因为龙目岛。

我能做些什么呢?

我也试过了

config.stopBubbling = true
lombok.addJavaxGeneratedAnnotation = true
lombok.addLombokGeneratedAnnotation = true

对于 intelj,我不使用不同的工具覆盖率。它自己的覆盖范围。

顺便说一句,intelj 就是这样显示的。但代码也将用于 sonarqube,因此analysed 也将用于coverage

这是 buildgradle

    compileOnly 'org.projectlombok:lombok:+'

【问题讨论】:

  • 你好,素食主义者。您在哪里添加了该配置?在lombok.config?
  • 我也在为此苦苦挣扎。你有没有找到解决方案?尽管(据说)正在生成注释,但 intellij 中的代码覆盖率在 data / equals 上显示“未覆盖的行”。

标签: spring spring-boot intellij-idea lombok


【解决方案1】:

Lombok 在编译时工作。 有关更多信息,请参阅 Here 示例

这样字节码就已经包含了 Lombok 生成的转换。

另一方面,覆盖工具通常在运行时执行字节码操作)。

因此,将 Lombok 配置为在覆盖范围内排除某些代码是没有意义的,而是取决于您选择的覆盖工具。

Sonar 在后期工作,通过收集覆盖工具生成的报告并将它们发送到 Sonar 服务器。

所以我认为你应该检查是否可以配置你的代码覆盖工具。

话虽如此,可能应该在单元测试中调用此代码 - 隐含地,而不是直接地,我不建议对 lombok 生成的代码进行单元测试。

【讨论】:

  • 我们很难调用这些 setter,因为我们有数百个。所以现在,我们需要临时解决方案,忽略这些。
  • 在这种情况下,也许值得使用自动化 bean 测试。 github.com/codebox/javabean-tester 是一个例子,还有其他例子
  • Jacoco,例如,从 v0.8.0 开始自动忽略带有 @lombok.Generated 注释的代码。
  • Lombok 在编译时工作。覆盖是在运行时完成的。覆盖率工具会查看运行测试时生成的报告,它将忽略注释为由 Lombok 生成的代码。因此,需要 lombok.config 设置才能让 Lombok 添加必要的注释。
猜你喜欢
  • 2021-07-29
  • 1970-01-01
  • 2017-11-18
  • 1970-01-01
  • 1970-01-01
  • 2021-06-26
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多