Lombok生成的代码在覆盖范围上不容忽视

时间:2018-10-10 08:40:32

标签: spring spring-boot intellij-idea lombok

在这里我问了一个问题:

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就是这样。但是代码也将要声纳,所以analysed也将有coverage

这是buildgradle

    compileOnly 'org.projectlombok:lombok:+'

1 个答案:

答案 0 :(得分:0)

Lombok在编译时工作。 有关详细信息,请参见Here

因此字节码已经包含Lombok生成的转换。

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

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

Sonar通过收集覆盖工具生成的报告并将其发送到Sonar服务器,在以后阶段工作。

因此,我认为您应该检查是否可以配置代码覆盖率工具。

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