2011-12-07 6 views
6

私はSinatraアプリケーションをテストするためにsporkを使用しています。Ruby 1.9.2では約3.5秒でテストが実行されますが、Ruby 1.8.7では平均1.2秒です。私はRuby 1.9.3やJRubyを試しましたが、使用している宝石にはいくつかのエラーがありました。 Ruby 1.9.2のrspecパフォーマンスを1.8.7レベルまで引き上げる方法はありますか?なぜ私のrspecテストは1.8.7よりもRuby 1.9.2で遅くなりますか?

マイGemfile:

source :rubygems 
gem 'sinatra', '1.3.1' 
gem 'thin', '1.3.1' 
gem 'haml', '3.1.4' 
gem 'datamapper', '1.2.0' 
gem 'dm-postgres-adapter', '1.2.0' 
gem 'carrierwave', '0.5.8' 
gem 'carrierwave-datamapper', '0.2.0' 

group :test do 
    gem "dm-sqlite-adapter" 
    gem "spork" 
    gem "rspec" 
    gem "rack-test" 
end 

spec_helper.rb:

require 'rubygems' 
require 'spork' 
require 'sinatra' 
require 'rack/test' 
require 'rspec' 

require File.join(File.dirname(__FILE__), '..', 'app.rb') 
require File.join(File.dirname(__FILE__), '..', 'model/model.rb') 

Spork.prefork do 
    set :environment, :test 
    set :files, "test_files" 
end 

Spork.each_run do 
    RSpec.configure do |config| 
    config.before(:each) { DataMapper.auto_migrate! } 
    config.after(:all) do 
     FileUtils.rm_rf(Dir["#{settings.root}/public/test_files"]) 
    end 
    end 
end 

感謝!

+0

私はMRI 1.9.2のロードされたモジュールとリンクしたパフォーマンスの問題について読んでいると思います。私がリンクを見つけ出すことができるかどうかがわかります – Magnus

答えて

関連する問題