Update: this issue is still not solved! Any help is appreciated! 05/07/2015 Update: a workaround is found. Please see my own answer 05/09/2015
When I rake, I got this error.
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>'
However, I've run the 'gem install bundler' and 'bundle install' the rspec/core/rake_task actually exists, shown by
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
I am lost here. Thanks so much for any help on this! I attached the 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
Update
Add my gem env if that's helpful
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
It seems that running
bundle exec rake -t
will work. Per bundler.io http://bundler.io/man/bundle-exec.1.html I suggest adding bundle exec to ensure that we are using the Gem specified in the current context. Also see this SO post. What does bundle exec rake mean?After : sudo gem install bundler
I created a Gemfile with:
and did bundle install . Now I dont get the error.
Assuming that you actually have rspec in your Gemfile, if you're getting this error it either means you're not running rake with the proper gems your application needs (use
bundle exec rake
from your application's root directory to solve), or that your rspec core gem has not been installed.If after running
bundle install
, you still get the same error when runningbundle exec rake
, check that you've actually installed your "test mode" gems. This happened to me.In my case, I had not installed my test gems because Bundler exhibits unconventional behavior by remembering the previous arguments passed to the
--without
option as noted here, so it could be that you think you're installing all your gems when you runbundle install
but you might actually be running with (for example...)--without development test
as well and not know it.Check for something like "Gems in the groups development and test were not installed." at the end of your
bundle install
output.To reset your bundle options, simply remove your
./.bundle
dir (so...rm -r ./.bundle
). Nowbundle install
will be back to normal and rake should work.In Production Environment
What happens is,
capistrano
is configured to only install gem bundle inproduction
group(as in Gemfile). So it runs bundle command likebundle install --without development test
.Want to verify?
Run
bundle install
command in project dir in Production environment, you will see followingPlease note (Gems in the groups development and test were not installed.).
You might recall that you have specified
rspec-rails
gem to be installed indevelopment
mode only.Solution
try to specify the
RAILS_ENV
like