ruby on rails - binstub - Почему Rspec говорит «Ошибка/Ошибка: не удается найти соответствующую строку из backtrace»?



ruby-on-rails ruby-on-rails-3 (8)

Я следую руководству по рельсам здесь: http://railstutorial.org/chapters/filling-in-the-layout#top

Когда я запускаю «rspec spec /», я получаю кучу ошибок, которые выглядят так:

1) LayoutLinks should have a Home page at '/'
    Failure/Error: Unable to find matching line from backtrace
    stack level too deep
    # C:/Ruby19/lib/ruby/1.9.1/forwardable.rb:185

2) LayoutLinks should have a Contact page at '/contact'
    Failure/Error: Unable to find matching line from backtrace
    stack level too deep
    # C:/Ruby19/lib/ruby/1.9.1/forwardable.rb:185

Но когда я перехожу в свой веб-браузер к localhost: 3000 / и localhost: 3000 / contact, страницы есть, и там есть правильные заголовки. Вот мой файл myrailsroot \ spec \ requests \ layout_links_spec.rb:

require 'spec_helper'

describe "LayoutLinks" do

  it "should have a Home page at '/'" do
    get '/'
    response.should have_selector('title', :content => "Home")
  end

  it "should have a Contact page at '/contact'" do
    get '/contact'
    response.should have_selector('title', :content => "Contact")
  end

  it "should have an About page at '/about'" do
    get '/about'
    response.should have_selector('title', :content => "About")
  end

  it "should have a Help page at '/help'" do
    get '/help'
    response.should have_selector('title', :content => "Help")
  end

  it "should have a signup page at '/signup'" do
    get '/signup'
    response.should have_selector('title', :content => "Sign up")
  end

end

Любые идеи были бы замечательными, спасибо


«Удар» Спок и исправил проблему для меня.


Следующая проблема была решена для меня.

gem install rspec-rails
sudo apt-get install libxslt-dev libxml2-dev
bundle install
rails generate rspec:install

Это связано с ошибкой в ​​RSpec 2.0.0.19. Если вы используете 2.0.0.б.18, как предлагает учебник, он будет работать нормально. Просто измените любую версию, которую вы имеете в своем Gemfile, на бета-версию 18, установите пакет и снова запустите тесты.

Вот соответствующие части из моего Gemfile.

group :development do
  gem 'rspec-rails', '2.0.0.beta.18'
end

group :test do
  gem 'rspec-rails', '2.0.0.beta.18'
  gem 'spork', '0.8.4'
end

Также обратите внимание, что Spork также может периодически вызывать подобные проблемы. Если у вас возникнут необъяснимые неудачи тестов, особенно если вы просто добавили новые контроллеры или действия, дайте им ответный удар. Нажмите Ctrl-C и снова запустите spork-сервер.


Я РАБОТАЮ

ПУТЬ__! больше информации, чем вам нужно, но для чего это стоит, этот Gemfile ...

source 'http://rubygems.org'

gem 'rails', '3.0.3'

# Bundle edge Rails instead: <br/>
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3-ruby', :require => 'sqlite3'

# Use unicorn as the web server<br/>
# gem 'unicorn'

# Deploy with Capistrano<br/>
# gem 'capistrano'

# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)<br/>
# gem 'ruby-debug'<br/>
# gem 'ruby-debug19'

# Bundle the extra gems:<br/>
# gem 'bj'<br/>
# gem 'nokogiri'<br/>
# gem 'sqlite3-ruby', :require => 'sqlite3'<br/>
# gem 'aws-s3', :require => 'aws/s3'<br/>

# Bundle gems for the local environment. Make sure to<br/>
# put test-only gems in this group so their generators<br/>
# and rake tasks are available in development mode:<br/>
# group :development, :test do<br/>
#   gem 'webrat'<br/>
# end<br/>
group :test, :development do<br/>
gem 'rspec-rails', '2.0.0.beta.18'<br/>
# gem 'capybara'<br/>
gem 'webrat', '0.7.1'<br/>
gem 'database_cleaner'<br/>
gem 'cucumber-rails'<br/>
gem 'cucumber'<br/>
gem 'spork'<br/>
gem 'launchy'<br/>
end

... после того, как я убегу ...

$ bundle install

... а также ...

$ bundle update webrat

... приводит к этому ... bundle ...

Using rake (0.8.7) <br/>
Using abstract (1.0.0) <br/>
Using activesupport (3.0.3) <br/>
Using builder (2.1.2) <br/>
Using i18n (0.5.0) <br/>
Using activemodel (3.0.3) <br/>
Using erubis (2.6.6) <br/>
Using rack (1.2.1) <br/>
Using rack-mount (0.6.13) <br/>
Using rack-test (0.5.7) <br/>
Using tzinfo (0.3.23) <br/>
Using actionpack (3.0.3) <br/>
Using mime-types (1.16) <br/>
Using polyglot (0.3.1) <br/>
Using treetop (1.4.9) <br/>
Using mail (2.2.14) <br/>
Using actionmailer (3.0.3) <br/>
Using arel (2.0.7) <br/>
Using activerecord (3.0.3) <br/>
Using activeresource (3.0.3) <br/>
Using bundler (1.0.7) <br/>
Using configuration (1.2.0) <br/>
Using diff-lcs (1.1.2) <br/>
Using json (1.4.6) <br/>
Using gherkin (2.3.3) <br/>
Using term-ansicolor (1.0.5) <br/>
Using cucumber (0.10.0) <br/>
Using cucumber-rails (0.3.2) <br/>
Using database_cleaner (0.6.0) <br/>
Using launchy (0.3.7) <br/>
Using nokogiri (1.4.4) <br/>
Using thor (0.14.6) <br/>
Using railties (3.0.3) <br/>
Using rails (3.0.3) <br/>
Using rspec-core (2.4.0) <br/>
Using rspec-expectations (2.4.0) <br/>
Using rspec-mocks (2.4.0) <br/>
Using rspec (2.4.0) <br/>
Using webrat (0.7.1) <br/>
Using rspec-rails (2.0.0.beta.18) <br/>
Using spork (0.8.4) <br/>
Using sqlite3-ruby (1.3.2)

..., который запустил все тестовые тесты приложений (в конце главы 5).


Я все еще видел эту проблему, пока не определил webrat 0.7.1.


Я могу подтвердить, что следующий Gemfile работает правильно ...

group :test do
  gem 'rspec', '2.0.0.beta.18'
  gem 'spork', '0.8.4'
  gem 'webrat', '0.7.1'
end

мой gemfile выглядел так и работает

group :test do 
    gem 'rspec-rails'
    gem 'webrat', '0.7.1'
end

где rspec-rails (2.1.0)

однако следующее не делает:

group :test do 
    gem 'rspec-rails'
    gem 'webrat', '0.7.2'
end

Поэтому я думаю, что это webrat играет.


ха-ха, перезапуск spork и автотест сделали трюк. ему иногда нужен хороший удар. Я запускаю rspec-rails 2.6.1 btw ...