繁体   English   中英

SonarQube不承认一些Lombok注释 - Jacoco的误导性测试覆盖结果

[英]SonarQube does not recognize some Lombok annotations - misleading test coverage results by Jacoco

SonarQube支持部分Lombok注释(getter - setters等)。 但是,它仍然不支持@EqualsAndHashCode@ToString方法。

我已经在StackOverflow和其他网站上尝试了所有答案。 但是,它在我的情况下不起作用。

有没有办法说SonarQube或Jacoco,不分析这个注释或不包括它们在测试覆盖率结果或什么是你的解决方案?

从Jacoco 0.7.10开始,现在可以通过在lombok.config中将标志lombok.addLombokGeneratedAnnotation设置为true来排除Lombok生成的代码。

更多关于http://www.rainerhahnekamp.com/ignoring-lombok-code-in-jacoco

让我们把SonarQube排除在等式之外,因为它只是揭示问题的工具。

JaCoCo通过检测字节码来工作:这意味着它在字节码中的特定位置添加了一些指令(探测器),并查看在测试运行期间哪些探测器被命中。

在它的一边Lombok生成字节码级别的方法。 然后,这些生成的方法由JaCoCo检测,并且不在您的测试范围内。

因此,您必须配置JaCoCo以忽略这些方法,或者在lombok完成其魔法之前修改类,或者为这些生成的方法编写测试。

您可以将Lombok配置为在生成的代码上生成@SuppressFBWarnings 可以,您可以配置JaCoCo来监听该批注。 不幸的是, @javax.annotation.Generated有保留源,所以对你没用。

披露:我是Lombok开发人员

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM