经过一些测试后,我确信我的设置(窗口,rubymine和最新的ruby版本)都有问题。我现在的时间是:
Finished tests in 14.289817s, 0.0700 tests/s, 0.3499 assertions/s.
1 tests, 5 assertions, 0 failures, 0 errors, 0 skips
Process finished with exit code 0
进行5次非常简单的测试(只检查空字段上的验证是否有效)。这5个单元测试的总时间为160秒,超过2分钟。
我该怎么做才能提高这个速度?
以下是测试:
require 'test_helper'
class ItemTest < ActiveSupport::TestCase
test 'item attributes must not be empty' do
item = Item.new
assert item.invalid?
assert item.errors[:name].any?
assert item.errors[:description].any?
assert item.errors[:image_url].any?
assert item.errors[:rating].any?
end
end
答案 0 :(得分:6)
您的问题是Windows。我们在Windows上使用JRuby,它实际上比Windows上的RubyInstaller(mingw)ruby运行得更快但是在运行测试套件或启动rails服务器时我们确实看到非常慢的结果。由于加载了Rails环境,单次测试运行大约需要1分钟。 您有几个选择:
答案 1 :(得分:2)
你宝石堆栈的其余部分是什么?有时第三方宝石由rails初始化并将尝试打电话回家(New Relic,Airbrake),这可能会使你的测试时间膨胀(尽管可能不是这么多)。如果您的测试套件没有严格要求的东西,您应该尝试将其拉入正确的env组,或通过bundler设置require :false
:
group :production do gem 'newrelic_rpm' end
答案 2 :(得分:0)
启动时间似乎在扼杀你,所以你和我可能在同一条船上。在Jodell和Dark Castle之间已有很多这方面的内容,但这里有几乎所有有用的东西,按功效降序排列。
set SPEC_OPTS=--drb