Ошибка RSpec при выполнении учебника http://ruby.railstutorial.org/ - PullRequest
2 голосов
/ 17 февраля 2011

Я искал везде, но не могу найти решение.Я следовал учебному пособию http://ruby.railstutorial.org/ и в главе 3 пытаюсь выполнить тест с использованием "rspec spec /"

Однако продолжаю получать следующую ошибку:

Failure/Error: Unable to find matching line from backtrace
 NameError:
   uninitialized constant ActionController::TestCase::Assertions
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/backward_compatibility.rb:20:in `const_missing'
 # /var/lib/gems/1.8/gems/rspec-expectations-2.5.0/lib/rspec/expectations/backward_compatibility.rb:6:in `const_missing'
 # /usr/lib/ruby/1.8/action_controller/integration.rb:18
 # /var/lib/gems/1.8/gems/webrat-0.7.1/lib/webrat/integrations/rails.rb:2
 # /var/lib/gems/1.8/gems/webrat-0.7.1/lib/webrat/core/configuration.rb:105:in `mode='
 # /var/lib/gems/1.8/gems/rspec-rails-2.5.0/lib/rspec/rails/example/controller_example_group.rb:172
 # /var/lib/gems/1.8/gems/webrat-0.7.1/lib/webrat/core/configuration.rb:9:in `configure'
 # /var/lib/gems/1.8/gems/rspec-rails-2.5.0/lib/rspec/rails/example/controller_example_group.rb:172
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/hooks.rb:29:in `instance_eval'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/hooks.rb:29:in `run_in'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/hooks.rb:64:in `run_all'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/hooks.rb:64:in `each'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/hooks.rb:64:in `run_all'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/hooks.rb:110:in `run_hook'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:191:in `eval_before_eachs'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:191:in `each'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:191:in `eval_before_eachs'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example.rb:144:in `run_before_each'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example.rb:48:in `run'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example.rb:106:in `with_around_hooks'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example.rb:46:in `run'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example.rb:99:in `with_pending_capture'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example.rb:98:in `catch'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example.rb:98:in `with_pending_capture'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example.rb:45:in `run'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:262:in `run_examples'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:258:in `map'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:258:in `run_examples'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:232:in `run'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:233:in `run'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:233:in `map'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:233:in `run'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/command_line.rb:27:in `run'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/command_line.rb:27:in `map'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/command_line.rb:27:in `run'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/reporter.rb:12:in `report'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/command_line.rb:24:in `run'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:55:in `run_in_process'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:46:in `run'
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:10:in `autorun'
 # /var/lib/gems/1.8/bin/rspec:19

Я безуспешно пытался удалить и переустановить драгоценные камни.

Вот мой список драгоценных камней:

    *** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.4, 3.0.3)
actionpack (3.0.4, 3.0.3)
activemodel (3.0.4, 3.0.3)
activerecord (3.0.4, 3.0.3)
activerecord-oracle_enhanced-adapter (1.3.2, 1.3.1)
activeresource (3.0.4, 3.0.3)
activesupport (3.0.4, 3.0.3)
arel (2.0.8, 2.0.7)
autotest (4.4.6)
autotest-rails-pure (4.1.2)
builder (3.0.0, 2.1.2)
bundler (1.0.10)
cgi_multipart_eof_fix (2.5.0)
daemon_controller (0.2.6, 0.2.5)
diff-lcs (1.1.2)
erubis (2.6.6)
fastthread (1.0.7)
file-tail (1.0.5)
gem_plugin (0.2.3)
i18n (0.5.0)
mail (2.2.15, 2.2.14)
mime-types (1.16)
nifty-generators (0.4.5, 0.4.4)
nokogiri (1.4.4)
passenger (3.0.2)
polyglot (0.3.1)
rack (1.2.1)
rack-mount (0.6.13)
rack-test (0.5.7)
rails (3.0.4, 3.0.3)
railties (3.0.4, 3.0.3)
rake (0.8.7)
redgreen (1.2.2)
rspec (2.3.0)
rspec-core (2.3.1)
rspec-expectations (2.3.0)
rspec-mocks (2.3.0)
rspec-rails (2.3.0)
ruby-oci8 (2.0.4)
spruz (0.2.5)
sqlite3 (1.3.3)
sqlite3-ruby (1.3.3, 1.3.2)
sys-uname (0.8.5)
thor (0.14.6)
treetop (1.4.9)
tzinfo (0.3.24)
webrat (0.7.3, 0.7.1)
ZenTest (4.4.2)

Файл драгоценных камней

source 'http://rubygems.org'

gem 'rails', '3.0.4'
gem 'sqlite3-ruby', '1.3.2', :require => 'sqlite3'

group :development do
  gem 'rspec-rails', '2.5.0'
end

group :test do
  gem 'rspec', '2.5.0'
  gem 'webrat', '0.7.1'
end

Ответы [ 6 ]

3 голосов
/ 19 мая 2011

Я нашел похожее решение для m.galkiewicz.Я на Ubuntu 10.10.Я обнаружил эту проблему из-за следующей строки из вашей ошибки: # /usr/lib/ruby/1.8/action_controller/integration.rb:18

Когда я сравниваю работу с моими друзьями, установите в той же версии Ubuntu, action_controller не был в пути /usr/lib/ruby/1.8.

Я обнаружил, что установил рельсы и грабли через apt-get, а не через rubygems.Вот изменения, которые я сделал, чтобы запустить его:

  1. sudo apt-get remove rails
  2. sudo gem install rails
  3. sudo bundle install

Затем я смог запустить rspec и продолжить обучение.

2 голосов
/ 05 января 2012

Мне удалось заставить это работать, удалив рельсы из apt-get (как ранее было рекомендовано другими) и установив из rubygems, но этого было недостаточно.Затем нужно было запустить «apt-get autoremove».Теперь все хорошо.

1 голос
/ 07 января 2012

Я тоже перебираю эту книгу и документирую, как она продвигается www.ridingrails.co.uk может помочь. Мой Gemfile выглядит как

source 'http://rubygems.org'

gem 'rails', '3.0.11'
gem 'sqlite3', '1.3.3'
gem 'heroku'
gem 'spork', '0.9.0.rc8'
gem 'gravatar_image_tag', '0.1.0'

group :development do
  gem 'rspec-rails', '2.6.1'
  gem 'annotate'
end

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

но мне потребовалось немного времени, чтобы все заработало. Я бы посмотрел на книгу, используя драгоценные камни, которые там есть.

0 голосов
/ 03 марта 2011

У нас была эта проблема.Мы посмотрели на обратную трассировку:

  16) DesktopsController DELETE destroy redirects to the desktops list
 Failure/Error: Unable to find matching line from backtrace
 NameError:
   uninitialized constant ActionController::TestCase::Assertions
 # /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/backward_compatibility.rb:20:in `const_missing'
 # /var/lib/gems/1.8/gems/rspec-expectations-2.5.0/lib/rspec/expectations/backward_compatibility.rb:6:in `const_missing'
 # /usr/lib/ruby/1.8/action_controller/integration.rb:18
 # /var/lib/gems/1.8/gems/webrat-0.7.3/lib/webrat/integrations/rails.rb:2

, заметив, что для этого требуются рельсы dpkg от webrat, мы посмотрели наgration / rails.rbМы видим, что это был файл action_controller /gration.rb.Глядя на наш action_controller 3.0.4, мы видим, что этого больше не существует.Конечно, удаление установленных dpkg может изменить эту проблему, но на самом деле это несовместимость API между webrat 0.7.3 и action_controller 3.0.4.Я не вижу более новой версии webrat, поэтому мы будем жить с этим ручным патчем, поскольку он нужен нам только для тестирования, а не для производства.

0 голосов
/ 27 февраля 2011

У меня была такая же проблема при сжатии Debian.Убедитесь, что rails и другие пакеты, связанные с ruby, установлены из rubygems, а не из репозитория вашего дистрибутива.

ii libruby 4.5 ii libruby1.8 1.8.7.302-2 ii libruby1.9.1 1.9.2.0-2 ii libxml-ruby1.8 1.1.3-2 ii libxslt-ruby 0.9.2-5 ii libxslt-ruby1.8 0.9.2-5 ii ruby ​​4.5
ii ruby-dev 4.5
ii ruby1.8 1.8.7.302-2ii ruby1.8-dev 1.8.7.302-2 ii ruby1.9.1 1.9.2.0-2 ii rubygems 1.3.7-3 ii rubygems1.8 1.3.7-3

0 голосов
/ 17 февраля 2011

Попробуйте обновить rspec до 2.5.0
После этого вы должны иметь:
rspec (2.5.0)
rspec-core (2.5.1)
rspec-ожидания (2.5.0)
rspec-mocks (2.5.0)
rspec-rails (2.5.0)

И удалите webrat 0.7.1, просто оставьте 0.7.3
webrat (0.7.3)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...