sporkでNameError: uninitialized constant RSpec::Core::CommandLineになる時の対処法

More than 3 years have passed since last update.

railstutorialの「3.6.3Spork を使ったテストの高速化」で、特にバージョンを指定しないでsporkを突っ込んで動かしてた。


  • gem 'spork-rails'

  • gem 'guard-spork'

一応バージョンを確認すると以下の通り。

$ gem list spork


  • guard-spork (2.1.0)

  • spork (1.0.0rc4)

  • spork-rails (4.0.0)

guard-sporkなんかは1世代変わってる。

その状態で

$ bundle exec spork --bootstrap

を動かすと、spec/spec_helper.rbに追記されるので、追記される内容を適宜spec/rails_helper.rbに記載。

で、その状態で

$ bundle exec spork

$ bundle exec rspec spec/requests/static_pages_spec.rb --drb

すると掲題の「NameError: uninitialized constant RSpec::Core::CommandLine」となる。

対応法は、

replace CommandLine with Runner for RSpec 3.0.0.rc1

にある通りを試すと、

~/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/spork-1.0.0rc4/lib/spork/test_framework/rspec.rb

の内容を書き換える。

一応動いた、が、gem本体直すのってどうよという感じで一旦spork使うのは見送ろうと思う。