2012-08-07 57 views
0

我在我的應用程序中使用rspec-rails 2.11.0,但是當我執行rspec spec /時會發生錯誤。這是一堆錯誤:rspec-rails 2.11.1 + rails 3.2.6

/Users/diego/.rvm/gems/[email protected]/gems/bundler-1.1.4/lib/bundler/runtime.rb:31:in `block in setup': You have already activated rspec-core 2.10.1, but your Gemfile requires rspec-core 2.11.1. Using bundle exec may solve this. (Gem::LoadError) 
from /Users/diego/.rvm/gems/[email protected]/gems/bundler-1.1.4/lib/bundler/runtime.rb:17:in `setup' 
from /Users/diego/.rvm/gems/[email protected]/gems/bundler-1.1.4/lib/bundler.rb:107:in `setup' 
from /Users/diego/.rvm/gems/[email protected]/gems/bundler-1.1.4/lib/bundler/setup.rb:7:in `<top (required)>' 
from /Users/diego/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `require' 
from /Users/diego/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require' 
from /Users/diego/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require' 
from /Users/diego/Development/Rails/carros/carros-web/config/boot.rb:6:in `<top (required)>' 
from /Users/diego/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from /Users/diego/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from /Users/diego/Development/Rails/carros/carros-web/config/application.rb:1:in `<top (required)>' 
from /Users/diego/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from /Users/diego/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from /Users/diego/Development/Rails/carros/carros-web/config/environment.rb:2:in `<top (required)>' 
from /Users/diego/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from /Users/diego/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from /Users/diego/Development/Rails/carros/carros-web/spec/spec_helper.rb:3:in `<top (required)>' 
from /Users/diego/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from /Users/diego/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from /Users/diego/Development/Rails/carros/carros-web/spec/models/admin_spec.rb:1:in `<top (required)>' 
from /Users/diego/.rvm/gems/ruby-1.9.3-head/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `load' 
from /Users/diego/.rvm/gems/ruby-1.9.3-head/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `block in load_spec_files' 
from /Users/diego/.rvm/gems/ruby-1.9.3-head/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `map' 
from /Users/diego/.rvm/gems/ruby-1.9.3-head/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `load_spec_files' 
from /Users/diego/.rvm/gems/ruby-1.9.3-head/gems/rspec-core-2.10.1/lib/rspec/core/command_line.rb:22:in `run' 
from /Users/diego/.rvm/gems/ruby-1.9.3-head/gems/rspec-core-2.10.1/lib/rspec/core/runner.rb:69:in `run' 
from /Users/diego/.rvm/gems/ruby-1.9.3-head/gems/rspec-core-2.10.1/lib/rspec/core/runner.rb:10:in `block in autorun' 

什麼是錯誤的?這是我的寶石文件https://gist.github.com/3280825

+4

'bundle exec rspec spec' work? – prusswan 2012-08-07 02:26:47

+0

我試過但有些測試沒有工作。我再試一次。 Tks – 2012-08-07 13:16:03

回答

1

發生什麼事是你的rspec應用程序版本是不同於你在全球環境中的版本。

看來,當你執行rspec從全球正在使用的一個。

的方法,使其工作是使用bundle exec從@prusswan至極表示將執行與應用程序ENV該命令(適當寶石版本等)

而且該錯誤消息中提到嘗試bundle exec

0

由於打捆使用,儘管錯誤消息說「試一試」 bundle exec,你真的如果你想確保只有在Gemfile/Gemfile.lock指定的寶石版本使用捆綁exec來運行它。另一種方法是使用binstubs,如here所述。

+0

問題發生的原因爲什麼在我的電腦中有兩個版本的rspec? – 2012-08-07 17:06:53

+0

您可能已經使用了另一個項目或以前的當前項目使用的舊版本('bundle update'將正在使用的gem升級到較新版本,但不會刪除舊版本)。如果你真的很困擾,你可以嘗試通過'gem uninstall rspec'去除特定的gem版本。 – prusswan 2012-08-07 17:34:01

+0

真的,這是一種選擇 – 2012-08-07 21:22:27