class RspecHelper
Public Instance Methods
after_test(metadata: nil, exception: nil)
click to toggle source
# File lib/acceptance_test/rspec/rspec_helper.rb, line 87 def after_test(metadata: nil, exception: nil) selected_driver = RspecHelper.instance.get_driver(metadata, driver: nil) if selected_driver and exception path = build_screenshot_name 'screenshots', metadata[:file_path], metadata[:line_number] Capybara.current_session.save_screenshot(path) puts metadata[:description] end CapybaraHelper.instance.after_test name: File.basename(metadata[:file_path]), exception: exception end
before_test(metadata:, app_host:, driver:, browser:, wait_time: old_driver = Capybara.current_driver)
click to toggle source
# File lib/acceptance_test/rspec/rspec_helper.rb, line 67 def before_test metadata:, app_host:, driver:, browser:, wait_time: old_driver = Capybara.current_driver selected_driver = RspecHelper.instance.get_driver(metadata, driver: driver) selected_browser = RspecHelper.instance.get_browser(metadata, browser: browser) params = {app_host: app_host, driver: selected_driver, browser: selected_browser, wait_time: wait_time} CapybaraHelper.instance.before_test params new_driver = Capybara.current_driver Capybara.current_session.instance_variable_set(:@mode, new_driver) if old_driver != new_driver metadata.delete(old_driver) metadata[new_driver] = true end end
build_name(path)
click to toggle source
# File lib/acceptance_test/rspec/rspec_helper.rb, line 109 def build_name path full_path = File.expand_path(path) spec_index = full_path.index("/spec") if spec_index extension = File.extname(path) ext_index = extension.size == 0 ? -1 : full_path.index(extension)-1 name = full_path[spec_index+1..ext_index].gsub("/", "_") name = name[5..-1] if name =~ /^spec_/ name = name[9..-1] if name =~ /^features_/ name = name[11..-1] if name =~ /^acceptance_/ else name = path end name end
build_screenshot_name(basedir, file_path, line_number=nil)
click to toggle source
# File lib/acceptance_test/rspec/rspec_helper.rb, line 101 def build_screenshot_name basedir, file_path, line_number=nil FileUtils.mkdir_p basedir unless File.exist? basedir name = "#{build_name(file_path)}#{line_number ? '-'+line_number.to_s : ''}.png" File.expand_path("#{basedir}/#{name}") end
configure(app_host:, driver: CapybaraHelper::DEFAULT_DRIVER, browser: CapybaraHelper::DEFAULT_BROWSER, wait_time: CapybaraHelper::DEFAULT_WAIT_TIME)
click to toggle source
# File lib/acceptance_test/rspec/rspec_helper.rb, line 15 def configure(app_host:, driver: CapybaraHelper::DEFAULT_DRIVER, browser: CapybaraHelper::DEFAULT_BROWSER, wait_time: CapybaraHelper::DEFAULT_WAIT_TIME) register_extensions RSpec.configure do |rspec_config| params = {app_host: app_host, driver: driver, browser: browser, wait_time: wait_time} RspecHelper.instance.configure_rspec rspec_config, params end end
configure_rspec(rspec_config, app_host:, driver: CapybaraHelper::DEFAULT_DRIVER, browser: CapybaraHelper::DEFAULT_BROWSER, wait_time: CapybaraHelper::DEFAULT_WAIT_TIME)
click to toggle source
# File lib/acceptance_test/rspec/rspec_helper.rb, line 43 def configure_rspec(rspec_config, app_host:, driver: CapybaraHelper::DEFAULT_DRIVER, browser: CapybaraHelper::DEFAULT_BROWSER, wait_time: CapybaraHelper::DEFAULT_WAIT_TIME) rspec_config.around(:each) do |example| params = {metadata: example.metadata, app_host: app_host, driver: driver, browser: browser, wait_time: wait_time} RspecHelper.instance.before_test params example.run RspecHelper.instance.after_test metadata: example.metadata, exception: example.exception end # rspec_config.before do |example| # params = {metadata: example.metadata, app_host: app_host, driver: driver, browser: browser, wait_time: wait_time} # # RspecHelper.instance.before_test params # end # rspec_config.after do |example| # RspecHelper.instance.after_test metadata: example.metadata, exception: example.exception # end end
get_browser(metadata, browser:)
click to toggle source
# File lib/acceptance_test/rspec/rspec_helper.rb, line 159 def get_browser(metadata, browser:) browser_name = browser browser_name = ENV['BROWSER'].nil? ? nil : ENV['BROWSER'].to_sym unless browser_name browser_name = metadata[:browser] unless browser_name supported_browsers.each do |supported_browser| browser_name = supported_browser if metadata[supported_browser] break if browser end if browser.nil? browser_name = CapybaraHelper::DEFAULT_BROWSER unless browser_name browser_name end
get_driver(metadata, driver:)
click to toggle source
# File lib/acceptance_test/rspec/rspec_helper.rb, line 142 def get_driver(metadata, driver:) driver_name = driver driver_name = ENV['DRIVER'].nil? ? nil : ENV['DRIVER'].to_sym unless driver_name driver_name = metadata[:driver] unless driver_name supported_drivers.each do |supported_driver| driver_name = supported_driver if metadata[supported_driver] break if driver end if driver.nil? driver_name = :selenium unless driver_name driver_name end
register_extensions()
click to toggle source
# File lib/acceptance_test/rspec/rspec_helper.rb, line 130 def register_extensions RSpec.configure do |conf| conf.filter_run_excluding :exclude => true end RSpec::configure do |config| config.include RSpec::Matchers::DSL config.include Capybara::RSpecMatchers config.include Capybara::DSL end end
run_on_specs_finished(command)
click to toggle source
# File lib/acceptance_test/rspec/rspec_helper.rb, line 184 def run_on_specs_finished command clazz = Object.const_set("CustomFormatter", Class.new) clazz.class_eval do define_method :initialize do |_| ; end define_method :close do |_| system command # require 'launchy' # # ENV['BROWSER'] = '/Applications/Google\ Chrome.app' # # Launchy.open "output/wikipedia-turnip-report.html" end end RSpec::Core::Formatters.register clazz, :close RSpec::configure do |config| config.formatter = "CustomFormatter" end # RSpec.configure do |config| # config.after(:type => :feature) do # system cmd # end # end end
supported_browsers()
click to toggle source
# File lib/acceptance_test/rspec/rspec_helper.rb, line 180 def supported_browsers [:chrome, :firefox] end
supported_drivers()
click to toggle source
# File lib/acceptance_test/rspec/rspec_helper.rb, line 176 def supported_drivers [:selenium] end