[英]Compiling Java unit tests very slow
我正在开发一个新的多模块 Maven 项目(Java11+),因为我们在项目中添加了越来越多的单元测试,我注意到编译我们的测试变得非常慢。 所以我开始分析项目,这里是编译一个典型模块的结果:
我已经在使用 Java11(OpenJDK)的 Windows 笔记本上运行了它,但可以在 Java17 和 OracleJDK 以及 Linux 机器上重现它。 我不知道是什么导致了这种巨大的差异(每个文件 0.05 秒与每个文件 6 秒)。 我们主要使用 Spring-Boot,在我们的测试中,我们使用带有 spring-boot-starter-test、Mockito 和 AssertJ 的 Junit5。
这是使用我们的 maven 配置的最小复制器: https://github.com/elbird/slow-test-compile
经过大量的反复试验,我找到了罪魁祸首:龙目岛。 我无法解释为什么,但是在我的复制器 https://github.com/elbird/slow-test-compile中,我发现至少在版本 1.18.20(及更低版本)中,使用 Java11+ 编译时,lombok 确实很慢。 (尤其是像 assertjs assertThat()
这样的重载方法)
幸运的是,在 lombok 1.18.22 中,这个问题似乎得到了修复(尽管更新日志中没有任何内容表明这一点
TLDR:更新到 lombok 1.18.22 解决了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.