2011-02-17 24 views
2

我到处搜索,但我似乎无法找到解决方案。我一直在下面的http://ruby.railstutorial.org/教程,我在第3章尝试使用执行测试“rspec的投机/”RSpec下面的错误http://ruby.railstutorial.org/教程

但是我一直recieving以下错误:

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

你的gemfile是什么样的? – 2011-02-17 17:20:32

+0

这个答案建议将webrat改为0.7.1:http://stackoverflow.com/questions/3517724/why-is-rspec-saying-failure-error-unable-to-find-matching-line-from-backtrace/ 4139573#4139573(然后重新运行'捆绑安装')这有帮助吗? – JeffH 2011-02-17 17:27:48

回答

0

尝试rspec的升级到2.5.0
你应该有那么:
rspec的(2.5.0)
rspec-core(2.5.1)
rspec-expectations(2.5.0)
rspec-嘲笑(2.5.0)
RSpec的护栏(2.5.0)

,并删除webrat 0.7.1,只是不停0.7.3
webrat(0.7.3)

0

我上有同样的问题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旁注0.9.2-5 II的libxslt-ruby1.8的0.9.2-5 II红宝石4.5
II红宝石-dev的4.5
II ruby​​1.8的1.8.7.302-2 II ruby​​1.8的-dev的1.8.7.302-2 二ruby1.9.1 1.9.2.0-2 ii ruby​​gems 1.3.7-3 ii ruby​​gems1.8 1.3.7-3

0

我们有这个问题。 看着我们回溯,这是:

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.rb。我们看到它包含action_controller/integration.rb。 看看我们的action_controller 3.0.4,我们看到这不再存在。 当然,删除dpkg安装的可能会改变这个问题,但实际上它是webrat 0.7.3和action_controller 3.0.4之间的API不兼容。 我没有看到webrat的更新版本,因此我们将使用此手动修补程序,因为我们只需要它进行测试,而不是生产。

3

我找到了类似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安装了rails和rake,而不是通过rubygems。下面是我做了修改的时候,先要

  1. sudo易于得到删除轨道
  2. sudo的创业板安装导轨
  3. sudo的包安装

当时我能rspec的运行和继续教程。

2

我设法通过从apt-get中删除rails(正如其他人推荐的那样)并从rubygems进行安装来实现此目的,但这还不够。有必要运行'apt-get autoremove'。现在一切都很好。

1

我正在阅读本书,并正在记录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 

,但我花了一些时间来让一切都正常了。我会看看那本书中使用的宝石。