2011-07-07 3 views
4

私はRails 3のテストにSppecを使用しようとしています。Sporkが私のテストをスピードアップしていない

私はいくつかのチュートリアルに従いましたが、Sporkはエラーなしで実行されているようですが、私のテストではSporkでの実行には同じ時間(43秒)がかかります。

どうしたらいいのですか?

Gemfile

gem 'spork', '>=0.9.0.rc9' 

spec_helper.rb

require 'rubygems' 
require 'spork' 
require 'factory_girl' 
require 'cover_me' 

Spork.prefork do 
    # Loading more in this block will cause your tests to run faster. However, 
    # if you change any configuration or code from libraries loaded here, you'll 
    # need to restart spork for it take effect. 
    # This file is copied to spec/ when you run 'rails generate rspec:install' 
    ENV["RAILS_ENV"] ||= 'test' 
    require File.expand_path("../../config/environment", __FILE__) 
    require 'rspec/rails' 

    # Force find of factory girl definitions. Tests started failing without this, and the factories could not be found 
    Factory.find_definitions 

    # Requires supporting ruby files with custom matchers and macros, etc, 
    # in spec/support/ and its subdirectories. 
    Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} 

    RSpec.configure do |config| 
    # == Mock Framework 
    # 
    # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line: 
    # 
    # config.mock_with :mocha 
    # config.mock_with :flexmock 
    # config.mock_with :rr 
    config.mock_with :rspec 

    # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures 
    config.fixture_path = "#{::Rails.root}/spec/fixtures" 

    # If you're not using ActiveRecord, or you'd prefer not to run each of your 
    # examples within a transaction, remove the following line or assign false 
    # instead of true. 
    config.use_transactional_fixtures = true 

    # Needed for Spork 
    ActiveSupport::Dependencies.clear 
    end 
end 

Spork.each_run do 
    # This code will be run each time you run your specs. 

end 

私はすべてが正常に見えるサーバを起動するために先割れスプーン→実行:

→ ロードをRSpecの プリロードRailsの環境を使用して を先割れスプーンSpork.precork block ... Sporkが準備完了です。 8989!

私もそれはあなたの実行時間を計測する方法によって異なり.rspecファイル

+0

どのように実行時間を測定していますか?あなたがテストを実行するコマンドを呼んだ時点から、またはテスト実行の始めから? Sporkはスピンアップ時間を短縮するレール環境をキャッシュしますが、実際の実行時間を短縮するとは思いません。 – JoshReedSchramm

+0

ああ、それは理にかなっています!ありがとう – 99miles

+0

私は解決策としてコメントを再投稿して、人々がそれを見つけることができるようにします。 – JoshReedSchramm

答えて

4

に--drbています。あなたがスピードアップすべきレールをスピンアップするのにかかる時間を含めるならば、実際のテスト実行時間は変わらないでしょう。

Sporkはスピンアップ時間を短縮するレール環境をキャッシュしますが、実際の実行時間は短縮されません。

関連する問題