2011-12-07 3 views
6

Sto usando spork per testare un'applicazione Sinatra e con Ruby 1.9.2 i test vengono eseguiti in circa 3,5 secondi ma in Ruby 1.8.7 hanno una media di 1,2 secondi. Ho provato Ruby 1.9.3 e anche JRuby ma hanno avuto alcuni errori con le gemme che sto usando. C'è un modo per portare le prestazioni di rspec di Ruby 1.9.2 fino al livello di 1.8.7?Perché i miei test rspec sono più lenti in Ruby 1.9.2 rispetto a 1.8.7?

mio 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 

grazie!

+0

Penso di ricordare di aver letto un problema di prestazioni legato al modo in cui i moduli caricati con MRI 1.9.2. Vedrò se riesco a scavare il link – Magnus

risposta