【发布时间】:2021-11-29 08:16:23
【问题描述】:
我正在开发一个新的多模块 Maven 项目 (Java11+),因为我们向项目中添加了越来越多的单元测试,我注意到编译我们的测试变得非常缓慢。所以我开始分析项目,这里是编译一个典型模块的结果:
- "test-compile" 18 个文件耗时 109 秒
- “编译”(非测试类)76 个文件需要 4 秒。
我已经在我的带有 Java11 (OpenJDK) 的 Windows 笔记本上运行了它,但可以在 Java17 和 OracleJDK 以及 Linux 机器上重现它。我不知道是什么导致了这种巨大的差异(每个文件 0.05 秒与每个文件 6 秒)。我们主要使用 Spring-Boot,我们的测试使用 Junit5 和 spring-boot-starter-test、Mockito 和 AssertJ。
这是使用我们的 maven 配置的最小复制器: https://github.com/elbird/slow-test-compile
【问题讨论】:
-
您能否提供有关您的代码的更多信息,或者是否可以链接到您的代码?
-
你使用lombok、mapstruct之类的东西吗?完整的 pom 也会有所帮助...我们真的在谈论测试的编译时间还是运行时间...完整的日志文件在这里会有所帮助...还要检查您是否正在运行防病毒应用程序...
-
我们使用 lombok 和 mapstruct。不幸的是,因为这是一个客户的私人项目,我不能分享任何真实的代码。稍后我可以尝试创建与我们的项目类似的项目来重现此问题并将某些地方公开。
-
我使用我们的 maven 配置添加了一个复制器:github.com/elbird/slow-test-compile
-
你还能分享更多关于这方面的信息吗?也许你是如何执行测试的? Lombok “已知”会不时导致 IDE 出现问题
标签: java maven unit-testing compilation lombok