2013-08-30 59 views
4

最近开始了Michael Hartl的RoRTute,试图在第3.2节中尝试我的第一个rspec测试,此时测试意味着失败,但是我得到的所有错误都是我所遇到的错误很难解释。我看了一下,但没有找到类似的错误和/或解决方案的运气。我是编程和ruby/rails新手。任何帮助将不胜感激,谢谢!ruby​​ on rails教程第3.2节rspec测试错误

终端误差输出

Macintosh:sample_app rails$ bundle exec rspec spec/requests/static_pages_spec.rb 
/Users/rails/.rvm/gems/[email protected]_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 /Users/rails/.rvm/gems/[email protected]_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium/webdriver/common/zipper.rb:1:in `<top (required)>' 
     from /Users/rails/.rvm/gems/[email protected]_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium/webdriver/common.rb:9:in `require' 
     from /Users/rails/.rvm/gems/[email protected]_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium/webdriver/common.rb:9:in `<top (required)>' 
     from /Users/rails/.rvm/gems/[email protected]_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium/webdriver.rb:29:in `require' 
     from /Users/rails/.rvm/gems/[email protected]_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium/webdriver.rb:29:in `<top (required)>' 
     from /Users/rails/.rvm/gems/[email protected]_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium-webdriver.rb:1:in `require' 
     from /Users/rails/.rvm/gems/[email protected]_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium-webdriver.rb:1:in `<top (required)>' 
     from /Users/rails/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require' 
     from /Users/rails/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require' 
     from /Users/rails/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each' 
     from /Users/rails/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require' 
     from /Users/rails/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each' 
     from /Users/rails/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require' 
     from /Users/rails/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler.rb:132:in `require' 
     from /Users/rails/rails_projects/sample_app/config/application.rb:12:in `<top (required)>' 
     from /Users/rails/rails_projects/sample_app/config/environment.rb:2:in `require' 
     from /Users/rails/rails_projects/sample_app/config/environment.rb:2:in `<top (required)>' 
     from /Users/rails/rails_projects/sample_app/spec/spec_helper.rb:3:in `require' 
     from /Users/rails/rails_projects/sample_app/spec/spec_helper.rb:3:in `<top (required)>' 
     from /Users/rails/rails_projects/sample_app/spec/requests/static_pages_spec.rb:1:in `require' 
     from /Users/rails/rails_projects/sample_app/spec/requests/static_pages_spec.rb:1:in `<top (required)>' 
     from /Users/rails/.rvm/gems/[email protected]_rails_4_0/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load' 
     from /Users/rails/.rvm/gems/[email protected]_rails_4_0/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `block in load_spec_files' 
     from /Users/rails/.rvm/gems/[email protected]_rails_4_0/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `each' 
     from /Users/rails/.rvm/gems/[email protected]_rails_4_0/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load_spec_files' 
     from /Users/rails/.rvm/gems/[email protected]_rails_4_0/gems/rspec-core-2.13.1/lib/rspec/core/command_line.rb:22:in `run' 
     from /Users/rails/.rvm/gems/[email protected]_rails_4_0/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:80:in `run' 
     from /Users/rails/.rvm/gems/[email protected]_rails_4_0/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:17:in `block in autorun' 

的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 

spec_helper.rb

# This file is copied to spec/ when you run 'rails generate rspec:install' 
ENV["RAILS_ENV"] ||= 'test' 
require File.expand_path("../../config/environment", __FILE__) 
require 'rspec/rails' 
require 'rspec/autorun' 

Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } 

ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration) 

RSpec.configure do |config| 

    config.fixture_path = "#{::Rails.root}/spec/fixtures" 

    config.use_transactional_fixtures = true 

    config.infer_base_class_for_anonymous_controllers = false 

    config.order = "random" 

    config.include Capybara::DSL 
end 

static_pages_specs.rb

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 
+0

刚刚访问该网站发布类似的问题。我没有使用Michael的教程。当我添加载波宝石时,我开始出现错误。 https://gist.github.com/vezu/6380850 – Benjamin

+0

它要求zip库。如果你会添加'gem zip'会怎么样? – hawk

+3

看来你使用的是旧版本的宝石。试试'gem'selenium-webdriver','〜> 2.35.1'' latest – hawk

回答

12

看来你正在使用旧版本的宝石。尝试'selenium-webdriver', '~> 2.35.1'最新

+0

尝试'bundle update'或者移除'Gemfile.lock'文件并且再次运行'bundle install'。 – hawk

+0

谢谢,我用过这个回复。 如果有人有时间,你能解释为什么这个工作?我问,因为在教程中,它经常指定使用的特定版本的宝石(不一定是最新的),没有任何事件,但在这里它导致了这个错误。 –

+0

看来版本selenium 2.0.0使用'rubyzip> = 0',它有1.0.0中的bug https://github.com/rubyzip/rubyzip/issues/90和selenium 2.35.1使用'rubyzip <1.0.0 “我希望这对你有意义。 – hawk

相关问题