Rspec + phantomjs/poltergeist CI fails to run integration/feature

Hi I am struggling to run my integration/feature tests via the Ci, please do let me know what am I doing wrong here.

Running specs locally works without any issues

  1. the gitlab CI setup :

`
image: ruby:2.3.0

cache:
paths:
- .bundle
- vendor/

stages:
 - test
 - integration
 - codecov

before_script:
 - export COMPILE=0
 - export PHANTOM_JS=phantomjs-2.1.1-linux-x86_64
 - export RAILS_ENV=test
 - gem install bundler
 - bundle install --path vendor/
 - mkdir ~/tmp
 - pushd ~/tmp
 - wget --max-redirect=40 http://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2
 - tar xf $PHANTOM_JS.tar.bz2
 - mv $PHANTOM_JS phantomjs
 - ln -s ~/tmp/phantomjs/bin/phantomjs /usr/bin/phantomjs
 - phantomjs --version
 - popd
rspec:
  stage: test
  services:
    - postgres:latest
    - redis:latest
variables:
    POSTGRES_DB: package_analysis_test
    POSTGRES_USER: runner
    POSTGRES_PASSWORD: runner

  script:
    - apt-get update -qq && apt-get install -y -qq nodejs postgresql-client libpq-dev
    - gem install bundler --no-ri --no-rdoc
    - cp config/_database.yml config/database.yml
    - cp config/_redis.yml config/redis.yml
    - cp config/_sidekiq.yml config/sidekiq.yml
    - cp config/_settings.yml config/settings.yml
    - bundle exec rake db:drop RAILS_ENV=test
    - bundle exec rake db:create RAILS_ENV=test
    - bundle exec rake db:schema:load RAILS_ENV=test
    - bundle exec rake db:structure:load RAILS_ENV=test
    - bundle exec rake db:seed RAILS_ENV=test
    - bundle exec rake assets:precompile RAILS_ENV=test
    - bundle exec rspec --exclude-pattern spec/features/*_spec.rb
  artifacts:
    paths:
      - coverage/

rspec-integration:
  stage: integration
  services:
    - postgres:latest
    - redis:latest
  variables:
    POSTGRES_DB: package_analysis_test
    POSTGRES_USER: runner
    POSTGRES_PASSWORD: runner

  script:
    - apt-get update -qq && apt-get install -y -qq nodejs postgresql-client libpq-dev
    - gem install bundler --no-ri --no-rdoc
    - cp config/_database.yml config/database.yml
    - cp config/_redis.yml config/redis.yml
    - cp config/_sidekiq.yml config/sidekiq.yml
    - cp config/_settings.yml config/settings.yml
    - bundle exec rake db:drop RAILS_ENV=test
    - bundle exec rake db:create RAILS_ENV=test
    - bundle exec rake db:schema:load RAILS_ENV=test
    - bundle exec rake db:structure:load RAILS_ENV=test
    - bundle exec rake db:seed RAILS_ENV=test
    - bundle exec rake assets:precompile RAILS_ENV=test
    - bundle exec rspec spec/features
pages:
  stage: codecov
  dependencies:
    - rspec
  script:
    - mv coverage/ public/
  artifacts:
    paths:
      - public
    expire_in: 30 days
  only:
    - staging
  1. The failed stage error :

       1) User processes late orders entering late orders #index
       Failure/Error: raise ActionController::RoutingError, "No route matches [#{env['REQUEST_METHOD']}] #
      {env['PATH_INFO'].inspect}"
    
        ActionController::RoutingError:
         No route matches [GET] "/assets/application.css"
         # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/web-console-
       2.0.0/lib/action_dispatch/debug_exceptions.rb:22:in `middleware_call'
        # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/web-console-
      2.0.0/lib/action_dispatch/debug_exceptions.rb:13:in `call'
       # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/actionpack-
       4.2.5/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
        # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/railties-4.2.5/lib/rails/rack/logger.rb:38:in 
       `call_app'
        # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/railties-4.2.5/lib/rails/rack/logger.rb:20:in `block i 
         n 
          call'
           # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/activesupport-
          4.2.5/lib/active_support/tagged_logging.rb:68:in `block in tagged'
           # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/activesupport-
           4.2.5/lib/active_support/tagged_logging.rb:26:in `tagged'
          # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/activesupport-
           4.2.5/lib/active_support/tagged_logging.rb:68:in `tagged'
          # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/railties-4.2.5/lib/rails/rack/logger.rb:20:in `call'
          # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/request_store-
           1.2.1/lib/request_store/middleware.rb:8:in `call'
          # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/actionpack-
         4.2.5/lib/action_dispatch/middleware/request_id.rb:21:in `call'
       # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/methodoverride.rb:22:in `call'
       # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/runtime.rb:18:in `call'
       # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/activesupport-
       4.2.5/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
       # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/lock.rb:17:in `call'
      # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/actionpack-
      4.2.5/lib/action_dispatch/middleware/static.rb:116:in `call'
      # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/sendfile.rb:113:in `call'
      # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/rack-mini-profiler-
       0.10.5/lib/mini_profiler/profiler.rb:171:in `call'
      # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/railties-4.2.5/lib/rails/engine.rb:518:in `call'
      # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/railties-4.2.5/lib/rails/application.rb:165:in `call'
       # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/urlmap.rb:66:in `block in call'
       # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/urlmap.rb:50:in `each'
       # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/urlmap.rb:50:in `call'
       # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/capybara-2.16.1/lib/capybara/server.rb:44:in 
        `call'
         # /builds/justcode/packageanalysis/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/handler/webrick.rb:88:in 
      `service'
        # /usr/local/lib/ruby/2.3.0/webrick/httpserver.rb:140:in `service'
       # /usr/local/lib/ruby/2.3.0/webrick/httpserver.rb:96:in `run'
      # /usr/local/lib/ruby/2.3.0/webrick/server.rb:296:in `block in start_thread'
      # 
      #   Showing full backtrace because every line was filtered out.
      #   See docs for RSpec::Configuration#backtrace_exclusion_patterns and
      #   RSpec::Configuration#backtrace_inclusion_patterns for more information.
       # ------------------
       # --- Caused by: ---
       # Capybara::CapybaraError:
       #   Your application server raised an error - It has been raised in your test code because 
        Capybara.raise_server_errors == true
      #   ./spec/features/late_order_process_spec.rb:8:in `block (2 levels) in <top (required)>'
    
       Finished in 5.18 seconds (files took 9.65 seconds to load)
       1 example, 1 failure
    
       Failed examples:
    
        rspec ./spec/features/late_order_process_spec.rb:5 # User processes late orders entering late orders 
        #index
    
        Coverage report generated for RSpec to /builds/justcode/packageanalysis/coverage. 85239 / 185989 LOC 
        (45.83%) covered.
        section_end:1513003423:build_script`

any ideas ? anyone ? :slight_smile:

The solution to this is posted on stack overflow :