Permalink
Browse files

adding a bit to tubbo's spork branch

  • Loading branch information...
1 parent 98b41d8 commit adf85e1ec6e883237eba8eb68b6ff984d1371dc6 @maxwell maxwell committed Mar 31, 2012
Showing with 213 additions and 157 deletions.
  1. +1 −0 .rspec
  2. +5 −0 Gemfile
  3. +16 −0 Gemfile.lock
  4. +18 −0 Guardfile
  5. +89 −86 features/support/env.rb
  6. +84 −71 spec/spec_helper.rb
View
1 .rspec
@@ -3,3 +3,4 @@
--color
--tag ~performance
--order random
+--drb
View
@@ -149,6 +149,11 @@ group :test do
gem 'webmock', :require => false
gem 'sqlite3'
gem 'mock_redis'
+
+ gem 'spork', '~> 1.0rc'
+ gem 'guard-rspec'
+ gem 'guard-spork'
+ gem 'guard-cucumber'
end
group :development do
View
@@ -193,6 +193,17 @@ GEM
gem_plugin (0.2.3)
gherkin (2.9.3)
json (>= 1.4.6)
+ guard (1.0.1)
+ ffi (>= 0.5.0)
+ thor (~> 0.14.6)
+ guard-cucumber (0.7.5)
+ cucumber (>= 0.10)
+ guard (>= 0.8.3)
+ guard-rspec (0.7.0)
+ guard (>= 0.10.0)
+ guard-spork (0.5.2)
+ guard (>= 0.10.0)
+ spork (>= 0.8.4)
haml (3.1.4)
handlebars_assets (0.4.1)
execjs (>= 1.2.9)
@@ -405,6 +416,7 @@ GEM
rack (~> 1.3, >= 1.3.6)
rack-protection (~> 1.2)
tilt (~> 1.3, >= 1.3.3)
+ spork (1.0.0rc2)
sprockets (2.0.3)
hike (~> 1.2)
rack (~> 1.0)
@@ -485,6 +497,9 @@ DEPENDENCIES
foreigner (~> 1.1.0)
foreman (= 0.34.1)
fuubar (= 0.0.6)
+ guard-cucumber
+ guard-rspec
+ guard-spork
haml
handlebars_assets
heroku
@@ -538,6 +553,7 @@ DEPENDENCIES
sass-rails (= 3.1.4)
selenium-webdriver (~> 2.16.0)
settingslogic!
+ spork (~> 1.0rc)
sqlite3
thin (~> 1.3.1)
timecop
View
@@ -18,3 +18,21 @@ guard 'rspec', :version => 2, :all_on_start => false do
# Capybara request specs
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
end
+
+guard 'spork', :cucumber_env => { 'RAILS_ENV' => 'test' }, :rspec_env => { 'RAILS_ENV' => 'test' }, :all_on_start => false do
+ watch('config/application.rb')
+ watch('config/environment.rb')
+ watch(%r{^config/environments/.+\.rb$})
+ watch(%r{^config/initializers/.+\.rb$})
+ watch('Gemfile')
+ watch('Gemfile.lock')
+ watch('spec/spec_helper.rb') { :rspec }
+ watch('test/test_helper.rb') { :test_unit }
+ watch(%r{features/support/}) { :cucumber }
+end
+
+guard 'cucumber' do
+ watch(%r{^features/.+\.feature$})
+ watch(%r{^features/support/.+$}) { 'features' }
+ watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
+end
View
@@ -1,93 +1,96 @@
-# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
-# It is recommended to regenerate this file in the future when you upgrade to a
-# newer version of cucumber-rails. Consider adding your own code to a new file
-# instead of editing this one. Cucumber will automatically load all features/**/*.rb
-# files.
-
-ENV["RAILS_ENV"] ||= "test"
-require 'cucumber/rails'
-
-require 'capybara/rails'
-require 'capybara/cucumber'
-require 'capybara/session'
-#require 'cucumber/rails/capybara_javascript_emulation' # Lets you click links with onclick javascript handlers without using @culerity or @javascript
-require 'cucumber/api_steps'
-
-# Ensure we know the appservers port
-Capybara.server_port = 9887
-
-# Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
-# order to ease the transition to Capybara we set the default here. If you'd
-# prefer to use XPath just remove this line and adjust any selectors in your
-# steps to use the XPath syntax.
-Capybara.default_selector = :css
-
-# We have a ridiculously high wait time to account for build machines of various beefiness.
-# Capybara.default_wait_time = 30
-
-# While there are a lot of failures, wait less, avoiding travis timeout
-Capybara.default_wait_time = 3
-
-# If you set this to false, any error raised from within your app will bubble
-# up to your step definition and out to cucumber unless you catch it somewhere
-# on the way. You can make Rails rescue errors and render error pages on a
-# per-scenario basis by tagging a scenario or feature with the @allow-rescue tag.
-#
-# If you set this to true, Rails will rescue all errors and render error
-# pages, more or less in the same way your application would behave in the
-# default production environment. It's not recommended to do this for all
-# of your scenarios, as this makes it hard to discover errors in your application.
-ActionController::Base.allow_rescue = false
-
-require 'database_cleaner'
-require 'database_cleaner/cucumber'
-DatabaseCleaner.strategy = :truncation
-DatabaseCleaner.orm = "active_record"
-Cucumber::Rails::World.use_transactional_fixtures = false
-
-require File.join(File.dirname(__FILE__), "database_cleaner_patches")
-require File.join(File.dirname(__FILE__), "integration_sessions_controller")
-require File.join(File.dirname(__FILE__), "poor_mans_webmock")
-
-require File.join(File.dirname(__FILE__), "..", "..", "spec", "helper_methods")
-require File.join(File.dirname(__FILE__), "..", "..", "spec", "support","user_methods")
-include HelperMethods
-
-require 'webmock/cucumber'
-WebMock.disable_net_connect!(:allow_localhost => true)
-
-Before do
- @no_follow_diaspora_hq_setting = AppConfig[:no_follow_diasporahq]
- AppConfig[:no_follow_diasporahq] = true
- DatabaseCleaner.clean
- Devise.mailer.deliveries = []
-end
-
-After do
- AppConfig[:no_follow_diasporahq] = @no_follow_diaspora_hq_setting
- if Capybara.current_session.driver.respond_to?(:browser)
- Capybara.reset_sessions!
- # Capybara.current_session.driver.browser.manage.delete_all_cookies
+require 'rubygems'
+require 'spork'
+#uncomment the following line to use spork with the debugger
+#require 'spork/ext/ruby-debug'
+
+Spork.prefork do
+ ENV["RAILS_ENV"] ||= "test"
+ require 'cucumber/rails'
+
+ require 'capybara/rails'
+ require 'capybara/cucumber'
+ require 'capybara/session'
+ #require 'cucumber/rails/capybara_javascript_emulation' # Lets you click links with onclick javascript handlers without using @culerity or @javascript
+ require 'cucumber/api_steps'
+
+ # Ensure we know the appservers port
+ Capybara.server_port = 9887
+
+
+ # Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
+ # order to ease the transition to Capybara we set the default here. If you'd
+ # prefer to use XPath just remove this line and adjust any selectors in your
+ # steps to use the XPath syntax.
+ Capybara.default_selector = :css
+
+ # We have a ridiculously high wait time to account for build machines of various beefiness.
+ # Capybara.default_wait_time = 30
+
+ # While there are a lot of failures, wait less, avoiding travis timeout
+ Capybara.default_wait_time = 3
+
+ # If you set this to false, any error raised from within your app will bubble
+ # up to your step definition and out to cucumber unless you catch it somewhere
+ # on the way. You can make Rails rescue errors and render error pages on a
+ # per-scenario basis by tagging a scenario or feature with the @allow-rescue tag.
+ #
+ # If you set this to true, Rails will rescue all errors and render error
+ # pages, more or less in the same way your application would behave in the
+ # default production environment. It's not recommended to do this for all
+ # of your scenarios, as this makes it hard to discover errors in your application.
+ ActionController::Base.allow_rescue = false
+
+ require 'database_cleaner'
+ require 'database_cleaner/cucumber'
+ DatabaseCleaner.strategy = :truncation
+ DatabaseCleaner.orm = "active_record"
+ Cucumber::Rails::World.use_transactional_fixtures = false
+
+ require File.join(File.dirname(__FILE__), "database_cleaner_patches")
+ require File.join(File.dirname(__FILE__), "integration_sessions_controller")
+ require File.join(File.dirname(__FILE__), "poor_mans_webmock")
+
+ require File.join(File.dirname(__FILE__), "..", "..", "spec", "helper_methods")
+ require File.join(File.dirname(__FILE__), "..", "..", "spec", "support","user_methods")
+ include HelperMethods
+
+ require 'webmock/cucumber'
+ WebMock.disable_net_connect!(:allow_localhost => true)
+
+ silence_warnings do
+ SERVICES['facebook'] = {'app_id' => :fake, 'app_secret' => 'sdoigjosdfijg'}
+ AppConfig[:configured_services] << 'facebook'
end
-end
-silence_warnings do
- SERVICES['facebook'] = {'app_id' => :fake, 'app_secret' => 'sdoigjosdfijg'}
- AppConfig[:configured_services] << 'facebook'
-end
+ require File.join(File.dirname(__FILE__), "..", "..", "spec", "support", "fake_resque")
-require File.join(File.dirname(__FILE__), "..", "..", "spec", "support", "fake_resque")
-require File.join(File.dirname(__FILE__), 'run_resque_in_process')
+ require File.join(File.dirname(__FILE__), 'run_resque_in_process')
+end
+Spork.each_run do
+ Before do
+ @no_follow_diaspora_hq_setting = AppConfig[:no_follow_diasporahq]
+ AppConfig[:no_follow_diasporahq] = true
+ DatabaseCleaner.clean
+ Devise.mailer.deliveries = []
+ end
-Before('@localserver') do
- TestServerFixture.start_if_needed
- CapybaraSettings.instance.save
- Capybara.current_driver = :selenium
- Capybara.run_server = false
-end
+ After do
+ AppConfig[:no_follow_diasporahq] = @no_follow_diaspora_hq_setting
+ if Capybara.current_session.driver.respond_to?(:browser)
+ Capybara.reset_sessions!
+ # Capybara.current_session.driver.browser.manage.delete_all_cookies
+ end
+ end
-After('@localserver') do
- CapybaraSettings.instance.restore
-end
+ Before('@localserver') do
+ TestServerFixture.start_if_needed
+ CapybaraSettings.instance.save
+ Capybara.current_driver = :selenium
+ Capybara.run_server = false
+ end
+ After('@localserver') do
+ CapybaraSettings.instance.restore
+ end
+end
Oops, something went wrong.

1 comment on commit adf85e1

Owner

maxwell commented on adf85e1 Mar 31, 2012

AHHH i forgot to no-FF

Please sign in to comment.