web-dev-qa-db-fra.com

LoadError: impossible de charger un tel fichier - rspec/core/rake_task

Mise à jour: ce problème n'est toujours pas résolu! Toute aide est appréciée! 05/07/2015 Mise à jour: une solution de contournement est trouvée. S'il vous plaît voir ma propre réponse 05/09/2015

Quand j'ai ratissé, j'ai eu cette erreur.

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>'

Cependant, j'ai exécuté les options 'gem install bundler' et 'bundle install', le rspec/core/rake_task existe réellement, comme indiqué par

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

Je suis perdu ici. Merci beaucoup pour toute aide à ce sujet! J'ai attaché le Gemfile:

source 'https://rubygems.org'

# Specify your gem's 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

Mettre à jour

Ajoutez ma gem env si c'est utile

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
12
Allen Lin

Il semble que l'exécution de bundle exec rake -t fonctionnera. Per bundler.io http://bundler.io/man/bundle-exec.1.html Je suggère d'ajouter l'exécutable bundle pour nous assurer que nous utilisons bien la Gem spécifiée dans le contexte actuel. Voir aussi ce SO post. Qu'est-ce que ça veut dire bundle exec?

11
Allen Lin

Après: Sudo gem install bundler

J'ai créé un Gemfile avec:

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

et fait le paquet installer. Maintenant, je ne comprends pas l'erreur.

6
resultsway

En environnement de production

Ce qui se passe est que capistrano est configuré pour installer uniquement le groupe de pierres précieuses dans le groupe production (comme dans Gemfile). Donc, il exécute une commande groupée comme bundle install --without development test

Voulez-vous vérifier?

Exécutez la commande bundle install dans le répertoire du projet dans l’environnement de production.

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.

Veuillez noter ( Les gemmes dans les groupes de développement et de test n'étaient pas installées. ). 

Vous vous rappelez peut-être que vous avez spécifié que rspec-Rails gem doit être installé en mode development uniquement.


Solution

essayez de spécifier le Rails_ENV comme

# 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
1
illusionist

En supposant que vous avez réellement rspec dans votre Gemfile, si vous rencontrez cette erreur, cela signifie également que vous n’exécutez pas rake avec les gems dont votre application a besoin (utilisez bundle exec rake du répertoire racine de votre application pour le résoudre), ou que votre noyau rspec gem n'a pas été installé. 

Si après l'exécution de bundle install, vous obtenez toujours la même erreur lorsque vous exécutez bundle exec rake, vérifiez que vous avez bien installé vos gems "mode test". Cela m'est arrivé 

Dans mon cas, je n’avais pas installé mes gemmes de test, car Bundler présente un comportement non conventionnel en se souvenant des arguments précédents passés à l’option --withoutcomme indiqué ici , de sorte que vous pensez peut-être installer tous vos gemmes lancez bundle install mais vous pourriez peut-être aussi courir avec (par exemple ...) --without development test et ne pas le savoir. 

Recherchez quelque chose comme "Les pierres précieuses dans le développement et les tests de groupes n'étaient pas installées". à la fin de votre sortie bundle install

Pour réinitialiser les options de votre paquet, supprimez simplement votre ./.bundle dir (donc ... rm -r ./.bundle). Maintenant, bundle install sera de retour à la normale et rake devrait fonctionner.

1
djb