[英]Rake tests running very slow
經過一些測試后,我確信我的設置(窗口,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
你的問題是Windows。 我們在Windows上使用JRuby,它實際上比Windows上的RubyInstaller(mingw)ruby運行得更快但是在運行測試套件或啟動rails服務器時我們確實看到非常慢的結果。 由於加載了Rails環境,單次測試運行大約需要1分鍾。 你有幾個選擇:
祝好運!
什么是你的寶石堆棧的其余部分? 有時第三方寶石由rails初始化並將嘗試打電話回家(New Relic,Airbrake),這可能會使你的測試時間膨脹(盡管可能不是這么多)。 如果您的測試套件沒有嚴格要求的東西,您應該嘗試將其拉入正確的env組,或通過bundler設置require :false
:
group :production do gem 'newrelic_rpm' end
啟動時間似乎在扼殺你,所以你和我可能在同一條船上。 在Jodell和Dark Castle之間已經有很多這方面的內容了,但是這里有幾乎所有有用的東西,按功效降序排列。
set SPEC_OPTS=--drb
6實際上並沒有給我買單。 我們遇到的最大問題是無條件地加載Thin(它安裝了Eventmachine,安裝了21兆字節),但是堆棧中接下來的3個實際上正被RSpec使用。 我沒有看過網絡流量,但Jodell可能正在那里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.