Запуск rspec Gem

#ruby-on-rails #rubygems #rspec

#ruby-on-rails #rubygems #rspec

Вопрос:

Когда я запускаю $ rspec spec / я получаю эту ошибку:

 You must use ANSICON 1.31 or later (http://adoxa.110mb.com/ansicon/) to use colour on Windows
C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.18/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.0.1. Consider using bundle exec. (Gem::LoadError) from C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.18
/lib/bundler/runtime.rb:17:in `setup'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.18
/lib/bundler.rb:107:in `setup'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.18
/lib/bundler/setup.rb:7:in `<top (required)>'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/site_ruby/1.9.1/rubygems/custo
m_require.rb:59:in `require'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/site_ruby/1.9.1/rubygems/custo
m_require.rb:59:in `rescue in require'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/site_ruby/1.9.1/rubygems/custo
m_require.rb:35:in `require'
    from c:/Sites/app2/config/boot.rb:6:in `<top (required)>'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/site_ruby/1.9.1/rubygems/custo
m_require.rb:36:in `require'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/site_ruby/1.9.1/rubygems/custo
m_require.rb:36:in `require'
    from c:/Sites/app2/config/application.rb:1:in `<top (required)>'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/site_ruby/1.9.1/rubygems/custo
m_require.rb:36:in `require'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/site_ruby/1.9.1/rubygems/custo
m_require.rb:36:in `require'
    from c:/Sites/app2/config/environment.rb:2:in `<top (required)>'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/site_ruby/1.9.1/rubygems/custo
m_require.rb:36:in `require'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/site_ruby/1.9.1/rubygems/custo
m_require.rb:36:in `require'
    from c:/Sites/app2/spec/spec_helper.rb:3:in `<top (required)>'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/site_ruby/1.9.1/rubygems/custo
m_require.rb:36:in `require'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/site_ruby/1.9.1/rubygems/custo
m_require.rb:36:in `require'
    from c:/Sites/app2/spec/controllers/pages_controller_spec.rb:1:in `<top
(required)>'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rspec-core-2.7
.1/lib/rspec/core/configuration.rb:459:in `load'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rspec-core-2.7
.1/lib/rspec/core/configuration.rb:459:in `block in load_spec_files'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rspec-core-2.7
.1/lib/rspec/core/configuration.rb:459:in `map'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rspec-core-2.7
.1/lib/rspec/core/configuration.rb:459:in `load_spec_files'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rspec-core-2.7
.1/lib/rspec/core/command_line.rb:18:in `run'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rspec-core-2.7
.1/lib/rspec/core/runner.rb:80:in `run_in_process'
    from C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rspec-core-2.7
.1/lib/rspec/core/runner.rb:69:in `run' from C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/runner.rb:10:in `block in autorun'k in autorun'
 

У меня установлены rspec и rspec-core:

показать пакет rspec

 C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rspec-2.0.1
 

показать пакет rspec-core

 C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rspec-core-2.0.1
 

Что мне нужно сделать, чтобы запустить rspec?

Комментарии:

1. Вы пробовали, как следует из сообщения, bundle exec rspec spec/ ? Если это сработает, рассмотрите bundle binstubs.

2. Это работает! Есть ли способ, которым я могу запустить rspec без bundle exec?

Ответ №1:

Ну, решение прямо в сообщении об ошибке:

Рассмотрите возможность использования bundle exec.

Итак, вы вводите:

 $ bundle exec rspec spec/
 

Но это в два раза больше символов для ввода! Этого не может быть! Итак, рассмотрим установку пакета —binstubs:

Сделайте это один раз:

 $ bundle install --binstubs          
 

Теперь это «просто работает»

 $ rspec spec/