diff --git a/features/support/capybara.rb b/features/support/capybara.rb index 456ec4deaf5ce1915197a5996f6ab5a7e926ba55..33ca76bea8d1b8d8378175bb763fba3459ac8098 100644 --- a/features/support/capybara.rb +++ b/features/support/capybara.rb @@ -3,7 +3,7 @@ require 'capybara-screenshot/spinach' # Give CI some extra time -timeout = (ENV['CI'] || ENV['CI_SERVER']) ? 40 : 10 +timeout = (ENV['CI'] || ENV['CI_SERVER']) ? 60 : 30 Capybara.javascript_driver = :poltergeist Capybara.register_driver :poltergeist do |app| @@ -25,5 +25,5 @@ Capybara::Screenshot.prune_strategy = :keep_last_run Spinach.hooks.before_run do - TestEnv.warm_asset_cache unless ENV['CI'] || ENV['CI_SERVER'] + TestEnv.eager_load_driver_server end diff --git a/spec/support/capybara.rb b/spec/support/capybara.rb index cebc972be7ed8ef59e5ebf54c9b505db4548f5ea..b8ca8f22a3d2cb53a8b926fc05b0aed4cc110ad8 100644 --- a/spec/support/capybara.rb +++ b/spec/support/capybara.rb @@ -1,10 +1,11 @@ +# rubocop:disable Style/GlobalVars require 'capybara/rails' require 'capybara/rspec' require 'capybara/poltergeist' require 'capybara-screenshot/rspec' # Give CI some extra time -timeout = (ENV['CI'] || ENV['CI_SERVER']) ? 40 : 10 +timeout = (ENV['CI'] || ENV['CI_SERVER']) ? 60 : 30 Capybara.javascript_driver = :poltergeist Capybara.register_driver :poltergeist do |app| @@ -26,7 +27,10 @@ Capybara::Screenshot.prune_strategy = :keep_last_run RSpec.configure do |config| - config.before(:suite) do - TestEnv.warm_asset_cache unless ENV['CI'] || ENV['CI_SERVER'] + config.before(:context, :js) do + next if $capybara_server_already_started + + TestEnv.eager_load_driver_server + $capybara_server_already_started = true end end diff --git a/spec/support/test_env.rb b/spec/support/test_env.rb index eed846405af2c10260a3ba248eb430cbad3860ca..32b64c1987052de48cb6a74e93453a038a76f6e3 100644 --- a/spec/support/test_env.rb +++ b/spec/support/test_env.rb @@ -171,10 +171,11 @@ def copy_forked_repo_with_submodules(project) # # Otherwise they'd be created by the first test, often timing out and # causing a transient test failure - def warm_asset_cache + def eager_load_driver_server return unless defined?(Capybara) - Capybara.current_session.driver.visit '/' + puts "Starting the Capybara driver' server..." + Capybara.current_session.visit '/' end private