diff --git a/.rspec b/.rspec index 53607ea5..5902dd3a 100644 --- a/.rspec +++ b/.rspec @@ -1 +1 @@ ---colour +--colour --drb diff --git a/Gemfile b/Gemfile index fdc6a41f..efa4be7c 100644 --- a/Gemfile +++ b/Gemfile @@ -173,6 +173,8 @@ group :development, :test do # PhantomJS driver for Capybara gem 'poltergeist', '1.1.0' + + gem 'spork', '~> 1.0rc' end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index 4e86bbcc..a81404b9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -447,6 +447,7 @@ GEM capybara (~> 2.0.0) railties (>= 3) spinach (>= 0.4) + spork (1.0.0rc3) sprockets (2.2.2) hike (~> 1.2) multi_json (~> 1.0) @@ -574,6 +575,7 @@ DEPENDENCIES six slim spinach-rails (= 0.2.0) + spork (~> 1.0rc) stamp state_machine test_after_commit diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 0f593de8..03c586f8 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,47 +1,62 @@ -require 'simplecov' unless ENV['CI'] +require 'rubygems' +require 'spork' -if ENV['TRAVIS'] - require 'coveralls' - Coveralls.wear! -end +Spork.prefork do + require 'simplecov' unless ENV['CI'] -# This file is copied to spec/ when you run 'rails generate rspec:install' -ENV["RAILS_ENV"] ||= 'test' -require File.expand_path("../../config/environment", __FILE__) -require 'rspec/rails' -require 'capybara/rails' -require 'capybara/rspec' -require 'webmock/rspec' -require 'email_spec' -require 'sidekiq/testing/inline' -require 'capybara/poltergeist' -Capybara.javascript_driver = :poltergeist -Capybara.default_wait_time = 10 + if ENV['TRAVIS'] + require 'coveralls' + Coveralls.wear! + end -# Requires supporting ruby files with custom matchers and macros, etc, -# in spec/support/ and its subdirectories. -Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} + # This file is copied to spec/ when you run 'rails generate rspec:install' + ENV["RAILS_ENV"] ||= 'test' + require File.expand_path("../../config/environment", __FILE__) + require 'rspec/rails' + require 'capybara/rails' + require 'capybara/rspec' + require 'webmock/rspec' + require 'email_spec' + require 'sidekiq/testing/inline' + require 'capybara/poltergeist' -WebMock.disable_net_connect!(allow_localhost: true) + # Loading more in this block will cause your tests to run faster. However, -RSpec.configure do |config| - config.mock_with :rspec + # if you change any configuration or code from libraries loaded here, you'll + # need to restart spork for it take effect. + Capybara.javascript_driver = :poltergeist + Capybara.default_wait_time = 10 - config.include LoginHelpers, type: :feature - config.include LoginHelpers, type: :request - config.include FactoryGirl::Syntax::Methods - config.include Devise::TestHelpers, type: :controller + # Requires supporting ruby files with custom matchers and macros, etc, + # in spec/support/ and its subdirectories. + Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} - # If you're not using ActiveRecord, or you'd prefer not to run each of your - # examples within a transaction, remove the following line or assign false - # instead of true. - config.use_transactional_fixtures = false + WebMock.disable_net_connect!(allow_localhost: true) - config.before do - # Use tmp dir for FS manipulations - temp_repos_path = Rails.root.join('tmp', 'test-git-base-path') - Gitlab.config.gitlab_shell.stub(repos_path: temp_repos_path) - FileUtils.rm_rf temp_repos_path - FileUtils.mkdir_p temp_repos_path + RSpec.configure do |config| + config.mock_with :rspec + + config.include LoginHelpers, type: :feature + config.include LoginHelpers, type: :request + config.include FactoryGirl::Syntax::Methods + config.include Devise::TestHelpers, type: :controller + + # If you're not using ActiveRecord, or you'd prefer not to run each of your + # examples within a transaction, remove the following line or assign false + # instead of true. + config.use_transactional_fixtures = false + + config.before do + # Use tmp dir for FS manipulations + temp_repos_path = Rails.root.join('tmp', 'test-git-base-path') + Gitlab.config.gitlab_shell.stub(repos_path: temp_repos_path) + FileUtils.rm_rf temp_repos_path + FileUtils.mkdir_p temp_repos_path + end end end + +Spork.each_run do + # This code will be run each time you run your specs. + +end