【发布时间】:2015-08-04 12:45:46
【问题描述】:
我们在 600 个使用 Spock 的 groovy 文件中进行了大量测试。 所有测试类都从 AbstractSpecification.groovy 扩展而来,其中注入了许多服务类和许多帮助方法来使用这些类(Spring、Autowired)。
我们使用 Eclipse,对 Abstract 类的每次更改都会导致重新编译(构建工作区,调用 Maven 项目构建器)。但是在开发过程中,这种重新编译变得越来越慢......现在有 600 次测试,我们不得不等待 aprox。距离 Eclipse 完成还有 14 分钟,这使得测试项目几乎无法使用。
我认为,对抽象类进行大量测试并没有什么不寻常的,所以我想知道使用 Spock 的人是否遇到了同样的问题。我更改了 Groovy 版本、插件版本,但没有任何帮助。只减少测试类的数量。
有什么想法吗?提前致谢!
技术数据: - Eclipse Kepler SR2,Groovy-Eclipse+Compiler 插件 2.9.1,Groovy 2.0.7,Spock 版本 0.7-groovy-2.0
【问题讨论】:
-
您是否进行了任何分析以查看导致速度变慢的原因(除了大量测试)?另外,这个性能问题是否只存在于您的 IDE 中,还是在您的正常构建(ant、maven、gradle 等)期间也会发生?
-
Maven 构建在 40 秒内完美运行 (mvn clean install -DskipTests) .. 它还使用 Groovy-Eclipse 编译器来编译 Java 和 Groovy 文件。所以它与 Eclipse-Groovy-Plugin 有关,对吧? jvisualvm 在冻结期间搜索类时分配了大量资源。
-
如果不跳过测试,maven 构建需要多长时间?