##zip/zip(LoadError)
rspecのラーニング手前でハマった人向け。
rails のチュートリアルの3.2.1TDDの項などで引っかかった人向け。
$ bundle exec rspec spec/requests/static_pages_spec.rb
したときに、
.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/selenium-webdriver-2.35.1/lib/selenium/webdriver/common/zipper.rb:1:in `require': cannot load such file -- zip/zip (LoadError)
とエラーが返されて通らないとき。
##対処法
Terminalでgem install zip
をして
対象プロジェクトのGemfileを開いて gem 'zip',’2.0.2’(ダウンロードしたバージョン)を足す。
source 'https://rubygems.org'
#ruby-gemset=railstutorial_rails_4_0
gem 'rails', '4.0.5'
gem 'zip',’2.0.2’
.
.
.
end
上記で通るようになる。
他にもselenium-webdriver のバージョンが古いことが原因の場合もあるみたい。
※追記
上記試したときは
selenium-webdriver
(2.35.1)
capybara
(2.1.0)
はインストール済でした。
※追記:2
@jnchito さんから上記よりストレートなやり方を教えていただきました。
ありがとうございます!
今回のケースは、 selenium-webdriver
が rubyzip
の1.0.0未満にしか対応していないのだけど、1.0.0betaがインストールされていて、「1.0.0未満として認識はされるけど、挙動が1.0.0に近いためエラーが生じている」ということのようでした。
私の環境に1.0.0betaがインストールされていて、それを上記のやり方で回避という変則的なやり方のようです。
1.0.0betaがインストールされていて上記の振る舞いをするのはどうやらレアケースなようで。
上記に対してストレートな解決策は以下コメント欄でも書かれている通り、rubyzip
のダウングレードのようです。
ダウングレードのやり方での解決も確認しました。