5

スポークジェムに問題があります。spork コマンドを実行するたびに、次の長いエラーが表示されます。

evan@TheBeast-Computer:~/rails_projects/sample_app$ spork
Using RSpec
Preloading Rails environment
Loading Spork.prefork block...
cannot load such file -- /home/evan/rails_projects/sample_app/spec_helper (LoadError)
/home/evan/rails_projects/sample_app/spec/spec_helper.rb:57:in `require_relative'
/home/evan/rails_projects/sample_app/spec/spec_helper.rb:57:in `block in <top (required)>'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork.rb:24:in `prefork'
/home/evan/rails_projects/sample_app/spec/spec_helper.rb:6:in `<top (required)>'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.5/lib/active_support/dependencies.rb:245:in `load'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.5/lib/active_support/dependencies.rb:245:in `block in load'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.5/lib/active_support/dependencies.rb:236:in `load_dependency'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.5/lib/active_support/dependencies.rb:245:in `load'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork/test_framework.rb:138:in `block (2 levels) in preload'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork/app_framework/rails.rb:8:in `preload'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork/test_framework.rb:134:in `block in preload'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork.rb:62:in `exec_prefork'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork/test_framework.rb:120:in `preload'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork/run_strategy/forking.rb:25:in `preload'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork/runner.rb:74:in `run'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/lib/spork/runner.rb:10:in `run'
/home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/bin/spork:10:in `<top (required)>'
/home/evan/.rvm/gems/ruby-1.9.3-p194/bin/spork:23:in `load'
/home/evan/.rvm/gems/ruby-1.9.3-p194/bin/spork:23:in `<main>'

これが私のGemfileです:

source 'https://rubygems.org'

gem 'rails', '3.2.5'

gem 'sqlite3'

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

group :development, :test do
  gem 'rspec-rails',    ">= 2.0.1"
end

group :test do
  gem 'rspec-rails', '>= 2.0.1'
  gem 'spork', '>= 0.8.4'
end

どうすればいいのか、自分の状況をどのように説明したらよいのか途方に暮れています。しかし、Ruby on Rails 3 のチュートリアル本に表示されている結果は次のとおりです。

$ spork
Using RSpec
Loading Spork.prefork block...
Spork is ready and listening on 8989!
4

6 に答える 6

10

システムアップデート後に同じ問題が発生しました。これは、ファイルの読み取り特権が欠落していることが原因でした。

単純なchmod+rが私のために働いた:

sudo chmod +r /home/evan/.rvm/gems/ruby-1.9.3-p194/gems/spork-0.9.2/bin/spork

編集

Rails3.2.9とRuby1.9.3-p327にアップデートするときに、もう一度問題が発生しました。残念ながら、これは今回のアクセスライツイシューからではなく、2つのアップデート間で進化した宝石から来ました(完全に透過的である必要があります)。したがって、この問題が発生した場合は、アクセス権の特権の問題がない場合にどのファイルが欠落しているかを確認し、対応するgemを正しくアップグレードする必要があります。

于 2012-06-13T19:39:23.940 に答える
1

同じ問題がありましたが、spec_help.rbファイルに移動して保存することができました。私がそれをすると、それは働き始めました。

于 2012-06-14T00:06:25.457 に答える
1

見てみると、sporkがロードしようとする「spec」フォルダに「spec_helper.rb」ファイルがあり、57行目のこのファイル内require_relative "../spec_helper"に「spec_helper.rb」ファイルを指すステートメントがあるブロックがあります。ルートプロジェクトフォルダにあり、ruby'はそのようなファイルをロードできません'それが欠落しているためです。

于 2012-06-12T13:47:22.723 に答える
0

私は実際に同じ問題に遭遇しました。環境/test.rb ファイルで、config.cache_classes を true に設定しました。

実際には、Spork が適切に機能するには、config.cache_classes を false に設定する必要があります。

于 2012-10-24T22:37:55.957 に答える