# Make double-sure the RAILS_ENV is not set to production,
# so fixtures aren't loaded into that environment
abort("Abort testing: Your Rails environment is running in production mode!") if Rails.env.production?

require "rails/test_unit/minitest_plugin"
require "active_support/test_case"
require "action_controller"
require "action_controller/test_case"
require "action_dispatch/testing/integration"
require "rails/generators/test_case"

require "active_support/testing/autorun"

if defined?(Capybara) && defined?(Puma)
  require "action_dispatch/system_test_case"
end

if defined?(ActiveRecord::Base)
  ActiveRecord::Migration.maintain_test_schema!

  module ActiveSupport
    class TestCase
      include ActiveRecord::TestFixtures
      self.fixture_path = "#{Rails.root}/test/fixtures/"
      self.file_fixture_path = fixture_path + "files"
    end
  end

  ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path

  def create_fixtures(*fixture_set_names, &block)
    FixtureSet.create_fixtures(ActiveSupport::TestCase.fixture_path, fixture_set_names, {}, &block)
  end
end

# :enddoc:

class ActionController::TestCase
  def before_setup # :nodoc:
    @routes = Rails.application.routes
    super
  end
end

class ActionDispatch::IntegrationTest
  def before_setup # :nodoc:
    @routes = Rails.application.routes
    super
  end
end

if defined?(Capybara) && defined?(Puma)
  class ActionDispatch::SystemTestCase
    def before_setup # :nodoc:
      @routes = Rails.application.routes
      super
    end
  end
end

# Make double-sure the RAILS_ENV is not set to production,
# so fixtures aren't loaded into that environment
abort("Abort testing: Your Rails environment is running in production mode!") if Rails.env.production?

require "rails/test_unit/minitest_plugin"
require "active_support/test_case"
require "action_controller"
require "action_controller/test_case"
require "action_dispatch/testing/integration"
require "rails/generators/test_case"

require "active_support/testing/autorun"

if defined?(ActiveRecord::Base)
  ActiveRecord::Migration.maintain_test_schema!

  module ActiveSupport
    class TestCase
      include ActiveRecord::TestFixtures
      self.fixture_path = "#{Rails.root}/test/fixtures/"
      self.file_fixture_path = fixture_path + "files"
    end
  end

  ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path

  def create_fixtures(*fixture_set_names, &block)
    FixtureSet.create_fixtures(ActiveSupport::TestCase.fixture_path, fixture_set_names, {}, &block)
  end
end

# :enddoc:

class ActionController::TestCase
  def before_setup # :nodoc:
    @routes = Rails.application.routes
    super
  end
end

class ActionDispatch::IntegrationTest
  def before_setup # :nodoc:
    @routes = Rails.application.routes
    super
  end
end

Remove unnecessary system test code
Remove unnecessary system test code

It turns out that we don't need to require system tests in the railties
test helper so we can remove it. If you're using system tests they will
be loaded by inheriting from ActionDispatch::SystemTestCase and the
routes will be loaded by ActionDispatch::IntegrationTest.
