Skip to content
Browse files

rspec, spork, guard

  • Loading branch information...
1 parent 67d28ac commit 04a09538d0f502366d3f8361c0702aaaa656798c @heartsentwined committed Oct 18, 2013
Showing with 114 additions and 0 deletions.
  1. +3 −0 .rspec
  2. +42 −0 Guardfile
  3. +69 −0 spec/spec_helper.rb
View
3 .rspec
@@ -0,0 +1,3 @@
+--color
+--drb
+--format documentation
View
42 Guardfile
@@ -0,0 +1,42 @@
+require 'active_support/core_ext'
+
+guard :rspec, all_after_pass: false, cli: '--drb' do
+ watch(%r{^spec/.+_spec\.rb$})
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
+ watch('spec/spec_helper.rb') { 'spec' }
+
+ # Rails
+ watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
+ watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
+
+ watch(%r{^app/controllers/(.+)_controller\.rb$}) do |m|
+ ["spec/routing/#{m[1]}_routing_spec.rb",
+ "spec/controllers/#{m[1]}_controller_spec.rb",
+ "spec/acceptance/#{m[1]}_spec.rb",
+ (m[1][/_pages/] ? "spec/requests/#{m[1]}_spec.rb" :
+ "spec/requests/#{m[1].singularize}_pages_spec.rb")]
+ end
+ watch(%r{^app/views/(.+)/}) do |m|
+ (m[1][/_pages/] ? "spec/requests/#{m[1]}_spec.rb" :
+ "spec/requests/#{m[1].singularize}_pages_spec.rb")
+ end
+
+ watch(%r{^spec/support/(.+)\.rb$}) { 'spec' }
+ watch('config/routes.rb') { 'spec/routing' }
+ watch('app/controllers/application_controller.rb') { 'spec/controllers' }
+
+ # Capybara
+ watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) do |m|
+ "spec/requests/#{m[1]}_spec.rb"
+ end
+end
+
+guard 'spork', rspec_env: { 'RAILS_ENV' => 'test' } do
+ watch('config/application.rb')
+ watch('config/environment.rb')
+ watch('config/environments/test.rb')
+ watch(%r{^config/initializers/.+\.rb$})
+ watch('Gemfile')
+ watch('Gemfile.lock')
+ watch('spec/spec_helper.rb') { :rspec }
+end
View
69 spec/spec_helper.rb
@@ -0,0 +1,69 @@
+require 'rubygems'
+require 'spork'
+#uncomment the following line to use spork with the debugger
+#require 'spork/ext/ruby-debug'
+
+Spork.prefork do
+ # Loading more in this block will cause your tests to run faster. However,
+ # if you change any configuration or code from libraries loaded here, you'll
+ # need to restart spork for it take effect.
+
+ # 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 'rspec/autorun'
+
+ # 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 }
+
+ # 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|
+ # ## 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
+
+ # 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(:suite) do
+ DatabaseCleaner.strategy = :truncation
+ end
+ config.before(:each) do
+ DatabaseCleaner.start
+ end
+ config.after(:each) do
+ DatabaseCleaner.clean
+ end
+ end
+
+end
+
+Spork.each_run do
+ # This code will be run each time you run your specs.
+
+end

0 comments on commit 04a0953

Please sign in to comment.
Something went wrong with that request. Please try again.