2012-12-26 44 views
2

我有一个轨道应用程序,使用默认的轨道测试约40个测试:单位。测试本身运行速度很快,但延迟时间大约为8秒,其中rake test似乎在后台执行某些操作,然后运行测试。在运行测试之前,“rake测试”做了什么?为什么需要这么长时间?

我正在使用linux来运行测试。

在调用rake test之后,但在测试运行之前,这段时间发生了什么?有没有办法减少或消除这个等待时间?

这是一个screenr video照亮这个问题。有问题的时间是0:04 - 0:11。

+0

您的应用程序中的代码越多,使用的gem越多,启动rails所需的时间越长,我倾向于使用rake来运行测试,将启动两次,一次在rake文件中,然后再次在测试帮助程序中启动;我倾向于使用rspec - 'bundle exec rspec spec'并绕过耙子,你可以做类似minitest? – house9

+0

您可以使用Spork https://github.com/sporkrb/spork避免为每次测试运行加载Rails环境。 –

回答

1

我想它是加载轨道环境(运行您的初始化程序,加载您的模型和控制器等)。我觉得这个速度很慢,特别是在Windows机器上,尤其是在jRuby上(它也必须启动JVM)。

还有加速jRuby的方式,列出了here,但在Windows上ruby与OSX或linux相比似乎仍然很慢。

编辑:刚才看到你的视频。你等待不到10秒。与20多秒钟相比,我在Windows机器上获得的并不是那么糟糕。

相关问题