我正在學習「通過示例學習Rails」一書,我試圖運行測試。出於某種原因,我無法使rspec正常工作。ruby on rails rspec error
如果我運行rspec spec/
命令他指示,我得到以下錯誤:
$ rspec spec/
/home/desktop/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.21/lib/bundler/runtime.rb:31:in `block in setup':
You have already activated rspec-core 2.7.1, but your Gemfile requires rspec-core 2.6.4.
Using bundle exec may solve this. (Gem::LoadError)
奇怪的是我的Gemfile不指定version--
group :development do
gem 'rspec-rails'
end
group :test do
gem 'rspec'
gem 'webrat'
end
如果我按照來自錯誤消息的建議並使用bundle exec rspec spec/
,然後前兩個測試通過 - 但我們在教程中構建的新「about」頁面失敗,出現以下錯誤,儘管據我所知可以告訴我建立的頁面和控制器操作等)完全相同哎應該是:
Failures:
1) PagesController GET 'about' should be successful
Failure/Error: response.should_be_success
NoMethodError:
undefined method `should_be_success' for #<ActionController::TestResponse:0x00000003539438>
# ./spec/controllers/pages_controller_spec.rb:23:in `block (3 levels) in <top (required)>'
Finished in 0.10861 seconds
3 examples, 1 failure
Failed examples:
rspec ./spec/controllers/pages_controller_spec.rb:21 # PagesController GET 'about' should be successful
我是一個非常有經驗的程序員,但我碰到有衝突的寶石版本和一百個不同的方式無窮無盡的問題,以完成使用Rails各種不同的任務(例如。 「使用RVM」,「不要使用RVM」,「使用sudo安裝gems」,「不要使用sudo安裝gems」等)
我的開發機器正在運行ubuntu linux。
感謝您的任何幫助 - 請解釋您是否會在Ruby noob語言中做錯了什麼!
謝謝安德魯!我錯過了那個錯誤。現在所有人似乎都在工作。有沒有辦法更新Gemfile.lock,以便「正確」的rspec gem被安裝? – julio
運行'bundle update'會根據給定的依賴關係樹將所有gem更新到最新的可能版本,'bundle update rspec'會爲指定的gem做更新。你不應該手動更新鎖文件。 –
完美!非常感謝你的幫助。 – julio