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