LoadError: невозможно загрузить такой файл - rspec/core/rake_task

Обновление: эта проблема все еще не решена! Любая помощь приветствуется! 05/07/2015 Обновление: обнаружено обходное решение. Пожалуйста, см. Мой собственный ответ 05/09/2015

Когда я рейк, я получил эту ошибку.

AllenLins-MacBook-Pro:geoblacklight allenlin$ rake -t
Resolving dependencies...
You must `gem install bundler` and `bundle install` to run rake tasks
rake aborted!
LoadError: cannot load such file -- rspec/core/rake_task
/Users/allenlin/Documents/USpatial/geoblacklight/Rakefile:12:in `require'
/Users/allenlin/Documents/USpatial/geoblacklight/Rakefile:12:in `<top (required)>'
/Users/allenlin/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/rake_module.rb:28:in `load'
/Users/allenlin/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/rake_module.rb:28:in `load_rakefile'
/Users/allenlin/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:689:in `raw_load_rakefile'
/Users/allenlin/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:94:in `block in load_rakefile'
/Users/allenlin/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:176:in `standard_exception_handling'
/Users/allenlin/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:93:in `load_rakefile'
/Users/allenlin/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:77:in `block in run'
/Users/allenlin/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:176:in `standard_exception_handling'
/Users/allenlin/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:75:in `run'
/Users/allenlin/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/rake-10.4.2/bin/rake:33:in `<top (required)>'
/Users/allenlin/.rbenv/versions/2.2.2/bin/rake:23:in `load'
/Users/allenlin/.rbenv/versions/2.2.2/bin/rake:23:in `<main>'

Тем не менее, я запустил "gem install bundler" и "bundle install", что действительно существует rspec/core/rake_task, показанный

AllenLins-MacBook-Pro:geoblacklight allenlin$ gem which rspec/core/rake_task
/Users/allenlin/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/rspec-core-3.0.4/lib/rspec/core/rake_task.rb

Я потерялся здесь. Большое спасибо за любую помощь в этом! Я прикрепил Gemfile:

source 'https://rubygems.org'

# Specify your gem dependencies in geoblacklight.gemspec
gemspec

# If we don't specify 2.11.0 we'll end up with sprockets 2.12.0 in the main
# Gemfile.lock but since sass-rails gets generated (rails new) into the test app
# it'll want sprockets 2.11.0 and we'll have a conflict
gem 'sprockets', '2.11.0'

# If we don't specify 3.2.15 we'll end up with sass 3.3.2 in the main
# Gemfile.lock but since sass-rails gets generated (rails new) into the test app
# it'll want sass 3.2.0 and we'll have a conflict
gem 'sass', '~> 3.2.0'
gem 'bootstrap-sass', ">= 3.2"

group :test do
  # Peg simplecov to < 0.8 until this is resolved:
  # https://github.com/colszowka/simplecov/issues/281
  gem 'simplecov', '~> 0.7.1', require: false
  gem 'coveralls', require: false
end

Обновление

Добавьте мой gem env, если это полезно

RubyGems Environment:
  - RUBYGEMS VERSION: 2.4.5
  - RUBY VERSION: 2.2.2 (2015-04-13 patchlevel 95) [x86_64-darwin14]
  - INSTALLATION DIRECTORY: /Users/allenlin/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0
  - RUBY EXECUTABLE: /Users/allenlin/.rbenv/versions/2.2.2/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/allenlin/.rbenv/versions/2.2.2/bin
  - SPEC CACHE DIRECTORY: /Users/allenlin/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Users/allenlin/.rbenv/versions/2.2.2/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-14
  - GEM PATHS:
     - /Users/allenlin/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0
     - /Users/allenlin/.gem/ruby/2.2.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /Users/allenlin/.rbenv/versions/2.2.2/bin
     - /usr/local/Cellar/rbenv/0.4.0/libexec
     - /Users/allenlin/.rbenv/shims
     - /Applications/Postgres.app/Contents/Versions/9.3/bin
     - /Library/Frameworks/Python.framework/Versions/2.7/bin
     - /Users/allenlin/Library/Enthought/Canopy_64bit/User/bin
     - /Users/allenlin/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.6/bin
     - /Users/allenlin/gradle-1.12/bin
     - /usr/local/bin
     - /Users/allenlin/apache-maven/apache-maven-3.1.1/bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /opt/X11/bin
     - /usr/local/git/bin
     - /usr/texbin

Ответ 2

После: sudo gem install bundler

Я создал Gemfile с:

gem 'rake'
gem 'rspec'
gem 'kramdown'

и установил пакет. Теперь я не получаю ошибку.

Ответ 3

Предполагая, что у вас действительно есть rspec в вашем Gemfile, если вы получаете эту ошибку, это означает, что вы не используете грабли с соответствующими камнями, которые необходимы вашему приложению (используйте bundle exec rake из корневого каталога вашего приложения для решения) или что ваш драгоценный камень rspec не был установлен.

Если после запуска bundle install вы все равно получите ту же ошибку при запуске bundle exec rake, убедитесь, что вы действительно установили свои "тестовые режимы". Это случилось со мной.

В моем случае я не установил свои тестовые камни, потому что Bundler демонстрирует нетрадиционное поведение, помня предыдущие аргументы, переданные в --without вариант как указано здесь, поэтому возможно, вы считаете, что устанавливаете все свои драгоценные камни, когда вы запускаете bundle install, но на самом деле вы можете работать с (например...) --without development test и не знать этого.

Проверьте что-то вроде "Самоцветы в разработке групп и теста не были установлены". в конце вашего вывода bundle install.

В reset параметры вашего пакета, просто удалите ваш ./.bundle dir (так... rm -r ./.bundle). Теперь bundle install вернется в нормальное состояние, и грабли должны работать.

Ответ 4

В производственной среде

Что происходит, capistrano настроен только для установки набора gem в группе production (как в Gemfile). Таким образом, он выполняет команду bundle как bundle install --without development test.

Хотите проверить?

Запустите команду bundle install в дереве проекта в рабочей среде, вы увидите следующее

Using devise 4.2.0
Using activeadmin 1.0.0.pre4
Using responsive_active_admin 0.0.5
Bundle complete! 60 Gemfile dependencies, 133 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into /path/to/your/app/production/shared/bundle.

Обратите внимание: (не были установлены самолеты в разработке и тестировании групп.).

Вы могли бы вспомнить, что вы указали rspec-rails gem, который должен быть установлен только в development.


Решение

попробуйте указать RAILS_ENV как

# For Rails 5.0 +
RAILS_ENV=production bundle exec rails -T

# or 

RAILS_ENV=production bundle exec rake -T

# but this may not work
bundle exec rake -T RAILS_ENV=production

Ответ 5

У меня была эта проблема, потому что в моем файле gem я не указал версию rspec, и он получил старую версию. Я обновил свой гем файл до него:

gem 'rspec', '3.8.0'

и это сработало!