Ruby on rails 跟踪时出现RSpec错误http://ruby.railstutorial.org/ 辅导的

Ruby on rails 跟踪时出现RSpec错误http://ruby.railstutorial.org/ 辅导的,ruby-on-rails,Ruby On Rails,我到处找了,但似乎找不到解决办法。我一直在学习上的教程,现在正在学习第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

我到处找了,但似乎找不到解决办法。我一直在学习上的教程,现在正在学习第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
我尝试卸载并重新安装gems,但运气不佳

这是我的宝石清单:

    *** 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

尝试将rspec升级到2.5.0
你应该有:
rspec(2.5.0)
rspec核心(2.5.1)
rspec期望值(2.5.0)
rspec模拟(2.5.0)
rspec导轨(2.5.0)

删除webrat 0.7.1,只保留0.7.3

webrat(0.7.3)

我在debian挤压上也遇到了同样的问题。确保rails和其他与ruby相关的软件包是从rubygems安装的,而不是从发行版的存储库安装的

ii libruby 4.5 二libruby1.8 1.8.7.302-2 二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开发4.5
ii ruby1.8 1.8.7.302-2 ii 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

我们遇到了这个问题。 我们查看了回溯,它是:

  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
注意到这需要webrat提供dpkg'ed rails,我们查看了integration/rails.rb。我们看到它包括action_controller/integration.rb。 看看我们的action_controller 3.0.4,我们发现它已经不存在了。 当然,删除dpkg安装的可能会改变这个问题,但实际上这是webrat 0.7.3和action_controller 3.0.4之间的API不兼容。
我没有看到更新版本的webrat,因此我们将使用此手动补丁,因为我们只需要它进行测试,而不需要在生产中使用。

我找到了与m.galkiewicz类似的解决方案。 我在ubuntu 10.10上。我发现此问题是因为您的错误中有以下行: #/usr/lib/ruby/1.8/action\u controller/integration.rb:18

当我与在同一版本ubuntu上安装的朋友们进行比较时,action_控制器不在/usr/lib/ruby/1.8路径中

我发现我通过apt-get安装了rails和rake,而不是通过rubygems。以下是我为使其运行所做的修改:

  • sudo-apt-get-remove-rails
  • sudogem安装导轨
  • sudo包安装

  • 然后,我可以运行rspec并继续学习教程。

    我通过从apt-get中删除rails(正如其他人之前建议的那样)并从rubygems中安装来实现这一点,但这还不够。然后必须运行“apt get autoremove”。现在一切都好了。

    我也在翻阅这本书,并记录它的进展情况,这可能会有所帮助。 我的档案看起来像

    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
    

    但是我花了一点时间把一切都准备好并运行起来。我想看一看这本书,使用那里的gem。

    你的gem文件是什么样子的?这个答案建议只将webrat更改为0.7.1:(然后重新运行“bundle install”)有帮助吗?我在原始帖子中包含了gem文件,webrat 0.7.1似乎没有改变任何东西,我最初使用的是webrat的2.5.0和0.7.1,然后返回到旧版本进行测试。但是我又更新了一次,仍然没有更新luck@keystone-很有趣,因为几天前我正在阅读本章,2.5.0和0.7.1的一切都正常。稍后我将再次查看我的配置,并让您知道谢谢,仅供参考,我正在使用Ubuntu 10.10和Aptana RadRails。虽然我不相信阿普塔纳会有什么不同。@keystone-Hmmm。我没有设法复制你的错误。首先,我试着让设置与您的相同,即ubuntu 10.10、ruby1.9.2、rubygems 1.3.7、rails 3.0.4、rspec 2.5.0、webrat 0.7.3。我逐行阅读了第3章,并完成了rspec规范/工作。然后我注意到您正在使用ruby 1.8.*。我想这可能是一个案例,于是我切换到ruby1.8.7-p160(使用RVM很容易)。但我再次没有问题运行rspec。我建议使用RVM并尝试使用不同的ruby构建、rubygems等!谢谢你的努力。我没有RVM的经验,但看起来我明天有计划了哈哈