webentwicklung-frage-antwort-db.com.de

LoadError: Diese Datei kann nicht geladen werden - rspec/core/rake_task

Update: Dieses Problem ist immer noch nicht gelöst! Jede Hilfe wird geschätzt! 05/07/2015 Update: Es wurde eine Problemumgehung gefunden. Bitte sehen Sie meine eigene Antwort 05/09/2015

Wenn ich Rechen habe, bekam ich diesen Fehler.

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

Allerdings habe ich den 'gem install bundler' und 'bundle install' ausgeführt, die tatsächlich vorhanden sind, und zwar durch das Vorhandensein von "rspec/core/rake_task", dargestellt durch

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

Ich bin hier verloren. Vielen Dank für jede Hilfe dazu! Ich habe das Gemfile angehängt:

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

Update

Fügen Sie mein Juwel env hinzu, wenn es hilfreich ist

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

Es scheint, dass das Ausführen von bundle exec rake -t funktioniert. Per bundler.io http://bundler.io/man/bundle-exec.1.html Ich schlage vor, Bündel exec hinzuzufügen, um sicherzustellen, dass wir den im aktuellen Kontext angegebenen Gem verwenden. Siehe auch diesen SO Post. Was bedeutet Bündel Exec Rake?

11
Allen Lin

Nachher: ​​Sudo gem install Bundler

Ich habe ein Gemfile erstellt mit:

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

und haben Bundle installiert. Jetzt bekomme ich keine Fehlermeldung.

6
resultsway

In der Produktionsumgebung

Was passiert, ist, dass capistrano so konfiguriert ist, dass nur das gem-Bundle in der Gruppe production (wie in Gemfile) installiert wird. Es führt also einen Bundle-Befehl wie bundle install --without development test aus. 

Möchten Sie es bestätigen?

Führen Sie den Befehl bundle install im Projektverzeichnis der Produktionsumgebung aus. Folgendes wird angezeigt

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.

Bitte beachten Sie ( Gems in den Gruppen Entwicklung und Test wurden nicht installiert. ). 

Möglicherweise erinnern Sie sich daran, dass Sie rspec-Rails gem angegeben haben, um nur im development-Modus installiert zu werden.


Lösung

versuchen Sie, den Rails_ENV-Typ anzugeben

# 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

Angenommen, Sie haben tatsächlich rspec in Ihrem Gemfile. Wenn Sie diesen Fehler erhalten, bedeutet dies entweder, dass Sie keinen Rake mit den richtigen Gems ausführen, die Ihre Anwendung benötigt (verwenden Sie bundle exec rake aus dem Stammverzeichnis Ihrer Anwendung, um das Problem zu lösen), oder dass Ihr rspec-Kern ist gem wurde nicht installiert. 

Wenn Sie nach dem Ausführen von bundle install immer noch die gleiche Fehlermeldung erhalten, wenn Sie bundle exec rake ausführen, überprüfen Sie, ob Sie tatsächlich Ihre "Testmodus" - Gems installiert haben. Das ist mir passiert. 

In meinem Fall hatte ich meine Testedelsteine ​​nicht installiert, da Bundler unkonventionelles Verhalten zeigt, indem ich mich an die vorherigen Argumente erinnere, die an die --without-Option wie hier angegeben übergeben wurden. Es könnte also sein, dass Sie alle Edelsteine ​​installieren Wenn Sie bundle install ausführen, laufen Sie möglicherweise auch mit (beispielsweise ...) --without development test und wissen es nicht. 

Suchen Sie nach etwas wie "Gems in der Gruppenentwicklung und Test wurden nicht installiert." am Ende Ihrer bundle install-Ausgabe. 

Um Ihre Bundle-Optionen zurückzusetzen, entfernen Sie einfach Ihr ./.bundle-Verzeichnis (also ... rm -r ./.bundle). Nun ist bundle install wieder normal und der Rake sollte funktionieren.

1
djb