ruby-on-railsrubyrspeccapistranocapistrano3

cannot load such file -- rspec/core/rake_task with capistrano


I'm not ruby on rails. When I launch :

cap integration deploy

I get an error :

INFO [90feb630]  Running /usr/local/rvm/bin/rvm ruby-2.4.0@myproject_gemset do bundle exec rake assets:precompile as myproject@myproject-server.com 
DEBUG [90feb630] Command: cd /home/myproject/myproject_rails/releases/20170703135523 && ( export RAILS_ENV="staging" RAILS_GROUPS="" ; /usr/local/rvm/bin/rvm ruby-2.4.0@myproject_gemset do bundle exec rake assets:precompile )
DEBUG [90feb630] rake aborted!
LoadError: cannot load such file -- rspec/core/rake_task

Here my capistrano config file for deploying :

set :user, 'myproject'

server 'myproject-server.com',
  user: fetch(:user),
  roles: %w{web app db},
  ssh_options: {forward_agent: true}

set :deploy_to, "/home/#{fetch(:user)}/#{fetch(:application)}"

set :rails_env, 'staging'

set :conditionally_migrate, true

set :keep_releases, 2

set :branch, 'master'

set :app_version, '0.1'

Edit

The issue is from the file /lib/tasks/integration.rake :

require 'rspec/core/rake_task'

    namespace :integration do
      desc 'integration test the JSON API endpoints'
      RSpec::Core::RakeTask.new(:test) do |t|
        # set the RAILS_ENV such that :integration tagged
        # specs are run
        ENV['RAILS_ENV'] = 'test'

        # only run those files in the 'integration' directory
        t.pattern = './spec/integration{,/*/**}/*_spec.rb'
      end
    end

Solution

  • The gem 'rspec-core' where only installed in dev / test env.

    So it was missing.

    Putting

    gem 'rspec-core', '~> 3.4' 
    

    Out of

    group :development, :test do
    

    Solved my issue