Bundle exec rspec spec / requests / static_pages_spec.rb from Hartl tutorial not working

I follow Michael Hartle's ruby ​​on rails tutorial to test the sample application (3.2.1 Test-driven development), but I get the following error after entering bundle exec rspec spec/requests/static_pages_spec.rb

 /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium/webdriver/common/zipper.rb:1:in `require': cannot load such file -- zip/zip (LoadError) from /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium/webdriver/common/zipper.rb:1:in `<top (required)>' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium/webdriver/common.rb:9:in `require' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium/webdriver/common.rb:9:in `<top (required)>' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium/webdriver.rb:29:in `require' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium/webdriver.rb:29:in `<top (required)>' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium-webdriver.rb:1:in `require' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium-webdriver.rb:1:in `<top (required)>' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler.rb:132:in `require' from /home/rahul/Downloads/rails_projects/sample_app/config/application.rb:12:in `<top (required)>' from /home/rahul/Downloads/rails_projects/sample_app/config/environment.rb:2:in `require' from /home/rahul/Downloads/rails_projects/sample_app/config/environment.rb:2:in `<top (required)>' from /home/rahul/Downloads/rails_projects/sample_app/spec/spec_helper.rb:3:in `require' from /home/rahul/Downloads/rails_projects/sample_app/spec/spec_helper.rb:3:in `<top (required)>' from /home/rahul/Downloads/rails_projects/sample_app/spec/requests/static_pages_spec.rb:1:in `require' from /home/rahul/Downloads/rails_projects/sample_app/spec/requests/static_pages_spec.rb:1:in `<top (required)>' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `block in load_spec_files' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `each' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load_spec_files' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/rspec-core-2.13.1/lib/rspec/core/command_line.rb:22:in `run' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:80:in `run' from /home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:17:in `block in autorun' 

Here is the code from spec/requests/static_pages_spec :

 require 'spec_helper' describe "Static pages" do describe "Home page" do it "should have the content 'Sample App' " do visit '/static_pages/home' expect(page).to have_content('Sample App') end end end 

Gemfile :

 source 'https://rubygems.org' ruby '2.0.0' #ruby-gemset=railstutorial_rails_4_0 gem 'rails', '4.0.0' group :development, :test do gem 'sqlite3', '1.3.7' gem 'rspec-rails', '2.13.1' end group :test do gem 'selenium-webdriver', '2.0.0' gem 'capybara', '2.1.0' end gem 'sass-rails', '4.0.0' gem 'uglifier', '2.1.1' gem 'coffee-rails', '4.0.0' gem 'jquery-rails', '2.2.1' gem 'turbolinks', '1.1.1' gem 'jbuilder', '1.0.2' group :doc do gem 'sdoc', '0.3.20', require: false end group :production do gem 'pg', '0.15.1' gem 'rails_12factor', '0.0.2' end 

routes.rb :

 SampleApp::Application.routes.draw do get "static_pages/home" get "static_pages/help" end 

OS : Ubuntu 13.04

I searched for a solution but did not find it. Please keep in mind that I am new to Ruby on Rails and web development.

+10
ruby ruby-on-rails rspec
Sep 01 '13 at 6:49
source share
3 answers

Error message:

 in `require': cannot load such file -- zip/zip (LoadError) 

refers to the missing gem called "rubyzip". It should have been installed by the bundler along with the selenium-web driver, but sometimes these things are not perfect. In this case, the latest version of "rubyzip" gem has changed the structure of the library, so "zip / zip" does not exist. Bundler will install the latest version by default, so there are no errors during installation, but there will be an error when you try to start the project, because the selenium-webdriver dependency lists do not know the difference.

Try adding gem 'rubyzip', '< 1.0.0' to your test group and run bundle install .




The problem is caused by updating the rubyzip , see https://github.com/rubyzip/rubyzip

selenium-webdriver need an update to reflect these changes - I registered the problem: https://github.com/vertis/selenium-webdriver/issues/3

+13
Sep 01 '13 at 20:23
source share

I had the same issue recently and just changing the gem version

 gem 'selenium-webdriver', '2.0.0' 

until the last:

 gem 'selenium-webdriver', '2.35.1' 

he fixed it! There was no need to install a rubyzip gem.

+4
Sep 12 '13 at 20:56 on
source share

Edit

 gem 'selenium-webdriver', '2.0.0' 

to

 gem 'selenium-webdriver' 

in your gemfile

+1
Sep 04 '13 at 16:01
source share



All Articles