2011-12-07 21 views
6

Estoy usando spork para probar una aplicación Sinatra y con Ruby 1.9.2 las pruebas se ejecutan en aproximadamente 3,5 segundos, pero en Ruby 1.8.7 promedian 1.2 segundos. Probé Ruby 1.9.3 e incluso JRuby pero tenían algunos errores con las gemas que estoy usando. ¿Hay alguna manera de llevar el rendimiento rspec de Ruby 1.9.2 al nivel de 1.8.7?¿Por qué mis pruebas de rspec se ejecutan más despacio en Ruby 1.9.2 que en 1.8.7?

Mi 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 

gracias!

+0

Creo que recuerdo haber leído sobre un problema de rendimiento relacionado con la forma en que MRI 1.9.2 cargaba los módulos. Veré si puedo encontrar el enlace – Magnus

Respuesta

Cuestiones relacionadas