在Intellij for Play Framework中构建测试非常慢

时间:2015-04-21 07:25:12

标签: scala intellij-idea playframework-2.3

有没有办法加快Intellij中Play Framework的单元测试的构建时间?我在做TDD。每当我执行测试时,编译大约需要30-60秒。即使是简单的 Hello World 测试也需要时间。即使没有任何更改,重新运行相同的测试仍将启动 make 过程。

我在使用Scala编写的Play 2.3.8上的Intellij 14.1上。

我已经尝试将java编译器设置为eclipse,并尝试将Scala编译器设置为SBT。

3 个答案:

答案 0 :(得分:3)

在intellij 14.1.2中,我所做的解决方法是:

1)从测试中移除makeEdit Configurations - > Defaults - > Scala Test - > Before launch - >( - ){ {1}})

2)使用Make(例如:activator)或(play

开始~ test:compile(或activator ~test:compile

这可以防止Intellij在每次调用sbt ~ test:compile时调用播放编译服务器。编译被委托给外部sbt / activator / play进程进行连续编译。缺点是,当您在编译完成之前立即运行测试时,您可能会收到NoClassDefinedFound异常。此外,您还需要监控额外的流程。然而,与Intellij的默认设置(目前)相比,这种设置要快得多。希望这对任何人都有帮助。

答案 1 :(得分:2)

我将假设您知道问题是构建时间 - 测试本身的实际运行时间可以忽略不计。

你对硬件有什么看法?根据我的经验,4GB内存不足以让Intellij Scala表现良好 - 我认为它需要一个大磁盘缓存(操作系统使用免费RAM)。 SSD也有帮助。使用性能监视器或类似操作系统来查看时间是磁盘,CPU还是网络。如果是CPU,请考虑堆大小是否有问题。

你的构建过程是什么样的?是否有插件?你的项目有多大?

更新

在没有更改的情况下触发完全重建是错误的。您的测试中是否存在修改项目目录的内容?如果你运行虚拟无操作测试,它会做同样的事情吗?您是否可以将日志写入项目树?例如?

在我有限的经验中,完整在Intellij下的Play版本比纯Scala版本慢了几个数量级 - 我猜是因为所有的SBT插件(视图编译器,xScript编译器,xSS编译器)等等)必须运行。但增量并不那么痛苦。

在OSX上,为“性能监视器”阅读“活动监视器”。

更新

有关缓慢增量Play版本的其他人的经验和解决方法,请参阅Intellij issue SCL-8235。投票支持该问题以提高其优先级并更快地修复。

答案 2 :(得分:0)

如何取消标记现有测试并仅留下您的测试?右键单击测试目录(应为绿色)和Unmark as Test Source Root