teamcapybara--capybara/spec/spec_helper.rb

47 lines
1.3 KiB
Ruby
Raw Normal View History

2009-11-04 17:00:05 -05:00
$:.unshift(File.expand_path('../lib', File.dirname(__FILE__)))
require 'rubygems'
require "bundler/setup"
require 'rspec'
2009-11-16 16:02:16 -05:00
require 'capybara'
RSpec.configure do |config|
config.before do
Capybara.configure do |config|
config.default_selector = :xpath
end
end
# Workaround for http://code.google.com/p/selenium/issues/detail?id=3147:
# Rerun the example if we hit a transient "docElement is null" error
config.around(:each) do |example|
attempts = 0
begin
example.run
# example is just a Proc, @example is the current RSpec::Core::Example
e = @example.instance_variable_get('@exception') # usually nil
2012-03-16 14:04:35 -04:00
if (defined?(Selenium::WebDriver::Error::UnknownError) && e.is_a?(Selenium::WebDriver::Error::UnknownError) &&
e.message == 'docElement is null' && (attempts += 1) < 5)
@example.instance_variable_set('@exception', nil)
redo
end
end until true
end
end
# Required here instead of in rspec_spec to avoid RSpec deprecation warning
require 'capybara/rspec'
require 'capybara/spec/session'
alias :running :lambda
Capybara.app = TestApp
2010-01-30 14:09:27 -05:00
Capybara.default_wait_time = 0 # less timeout so tests run faster
module TestSessions
RackTest = Capybara::Session.new(:rack_test, TestApp)
Selenium = Capybara::Session.new(:selenium, TestApp)
2012-02-01 08:32:33 -05:00
end