web-dev-qa-db-ja.com

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

更新

役立つ場合は、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
18
Allen Lin

実行中のようですbundle exec rake -t 働くでしょう。 bundler.ioごと http://bundler.io/man/bundle-exec.1.html バンドルexecを追加して、現在のコンテキストで指定されているGemを使用していることを確認することをお勧めします。こちらもご覧くださいSO post。 bundle exec rakeの意味?

14
Allen Lin

後:Sudo gem install bundler

私はGemfileを作成しました:

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

バンドルインストールしました。エラーは発生しません。

7
resultsway

本番環境で

何が起こるかは、capistranoproductionグループにGemバンドルのみをインストールするように構成されていることです(Gemfileと同様)。したがって、bundle install --without development testのようなbundleコマンドを実行します。

確認しますか?

本番環境のプロジェクトディレクトリで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.

注意してください(開発とテストのグループの宝石はインストールされませんでした。)。

developmentモードでのみインストールするrspec-Rails gemを指定したことを思い出してください。


解決

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

Gemfileに実際にrspecがあるとすると、このエラーが発生する場合は、アプリケーションが必要とする適切なgemでrakeを実行していないことを意味します(アプリケーションのルートディレクトリからbundle exec rakeを使用して解決します)。 rspecコアgemがインストールされていないこと。

bundle installを実行した後でもbundle exec rakeを実行しても同じエラーが発生する場合は、実際に「テストモード」gemがインストールされていることを確認してください。これは私に起こりました。

私の場合、Bundlerが--withoutオプションに渡された以前の引数 ここに記されているように を思い出して奇抜な動作をするため、テスト宝石をインストールしていなかったので、 bundle installを実行するときにすべてのgemを再インストールしますが、実際には(たとえば...)--without development testも実行していて、知らない場合があります。

「Gems in the groups development and test was not installed。」のようなものを確認します。 bundle install出力の最後に。

バンドルオプションをリセットするには、./.bundleディレクトリを削除するだけです(つまり、rm -r ./.bundle)。これでbundle installは通常に戻り、rakeが機能するはずです。

1
djb

私のgemファイルではrspecのバージョンを指定せず、古いバージョンを取得したため、この問題が発生しました。私のgemファイルをそれに更新しました:

gem 'rspec', '3.8.0'

そしてそれはうまくいった!

0
Ahad Yekta