# This file is copied to spec/ when you run 'rails generate rspec:install' ENV["RAILS_ENV"] ||= 'test' require File.expand_path("../test_app/config/environment", __FILE__) require 'rspec/rails' require 'rspec/autorun' require 'shoulda/matchers' require 'capybara/rspec' require "factory_girl" require "database_cleaner" if ENV["RAILS_ENV"] == 'test' unless ENV["SKIP_COV"] require 'simplecov' require 'coveralls' SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[ SimpleCov::Formatter::HTMLFormatter, Coveralls::SimpleCov::Formatter ] if ENV['CIRCLE_ARTIFACTS'] dir = File.join("..", "..", "..", ENV['CIRCLE_ARTIFACTS'], "coverage") SimpleCov.coverage_dir(dir) end # SimpleCov.start 'rails' SimpleCov.start 'rails' do add_filter 'app/secrets' end end end # Requires supporting ruby files with custom matchers and macros, etc, # in spec/support/ and its subdirectories. Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f} # Checks for pending migrations before tests are run. # If you are not using ActiveRecord, you can remove this line. ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration) RSpec.configure do |config| config.include FactoryGirl::Syntax::Methods config.warnings = false # ## Mock Framework # # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line: # # config.mock_with :mocha # config.mock_with :flexmock # config.mock_with :rr # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures config.fixture_path = "#{::Rails.root}/spec/fixtures" # 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 = true # If true, the base class of anonymous controllers will be inferred # automatically. This will be the default behavior in future versions of # rspec-rails. config.infer_base_class_for_anonymous_controllers = false config.infer_spec_type_from_file_location! # Run specs in random order to surface order dependencies. If you find an # order dependency and want to debug it, you can fix the order by providing # the seed, which is printed after each run. # --seed 1234 config.order = "random" config.before(:all) do DatabaseCleaner.strategy = :truncation, {:pre_count => true, :reset_ids => true} DatabaseCleaner.clean_with(:truncation) end config.before(:each) do DatabaseCleaner.start end config.after(:each) do DatabaseCleaner.clean end end Capybara.app_host = "http://example.com" # Fix to load shoulda matches Shoulda::Matchers.configure do |config| config.integrate do |with| with.test_framework :rspec with.library :rails end end