Class: RspecHelper
- Inherits:
-
Object
- Object
- RspecHelper
- Includes:
- Singleton
- Defined in:
- lib/acceptance_test/rspec/rspec_helper.rb
Instance Method Summary collapse
- #after_test(metadata: metadata, exception: exception) ⇒ Object
- #before_test(metadata:, app_host:, driver:, browser:, wait_time:) ⇒ Object
- #configure(app_host:, driver: CapybaraHelper::DEFAULT_DRIVER, browser: CapybaraHelper::DEFAULT_BROWSER, wait_time: CapybaraHelper::DEFAULT_WAIT_TIME) ⇒ Object
- #configure_rspec(rspec_config, app_host:, driver: CapybaraHelper::DEFAULT_DRIVER, browser: CapybaraHelper::DEFAULT_BROWSER, wait_time: CapybaraHelper::DEFAULT_WAIT_TIME) ⇒ Object
- #create_shared_context(name) ⇒ Object
- #get_browser(metadata, browser:) ⇒ Object
- #get_driver(metadata, driver:) ⇒ Object
- #register_extensions ⇒ Object
- #run_on_specs_finished(command) ⇒ Object
- #supported_browsers ⇒ Object
- #supported_drivers ⇒ Object
Instance Method Details
#after_test(metadata: metadata, exception: exception) ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/acceptance_test/rspec/rspec_helper.rb', line 76 def after_test(metadata: , exception: exception) CapybaraHelper.instance.after_test metadata: , exception: exception # driver = driver(example.metadata) # # if driver and exception and page and not [:webkit].include? driver # screenshot_maker.basedir = File.expand_path(config[:screenshots_dir]) # # screenshot_maker.make page, example.metadata # # puts example.metadata[:full_description] # puts "Screenshot: #{screenshot_maker.screenshot_url(example.metadata)}" # end # end |
#before_test(metadata:, app_host:, driver:, browser:, wait_time:) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/acceptance_test/rspec/rspec_helper.rb', line 53 def before_test metadata:, app_host:, driver:, browser:, wait_time: old_driver = Capybara.current_driver selected_driver = RspecHelper.instance.get_driver(, driver: driver) selected_browser = RspecHelper.instance.get_browser(, browser: browser) params = {app_host: app_host, driver: selected_driver, browser: selected_browser, wait_time: wait_time} CapybaraHelper.instance.before_test params # puts "Using driver: #{Capybara.current_driver}." # puts "Default wait time: #{Capybara.default_max_wait_time }." new_driver = Capybara.current_driver Capybara.current_session.instance_variable_set(:@mode, new_driver) if old_driver != new_driver .delete(old_driver) [new_driver] = true end end |
#configure(app_host:, driver: CapybaraHelper::DEFAULT_DRIVER, browser: CapybaraHelper::DEFAULT_BROWSER, wait_time: CapybaraHelper::DEFAULT_WAIT_TIME) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/acceptance_test/rspec/rspec_helper.rb', line 14 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) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/acceptance_test/rspec/rspec_helper.rb', line 40 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., 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., exception: example.exception end end |
#create_shared_context(name) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/acceptance_test/rspec/rspec_helper.rb', line 25 def create_shared_context(name) register_extensions RSpec.shared_context name do |app_host:, driver: CapybaraHelper::DEFAULT_DRIVER, browser: CapybaraHelper::DEFAULT_BROWSER, wait_time: CapybaraHelper::DEFAULT_WAIT_TIME| self.define_singleton_method(:include_context, lambda do params = {app_host: app_host, driver: driver, browser: browser, wait_time: wait_time} RspecHelper.instance.configure_rspec self, params end) include_context end end |
#get_browser(metadata, browser:) ⇒ Object
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
# File 'lib/acceptance_test/rspec/rspec_helper.rb', line 123 def get_browser(, browser:) #browser_name = ENV['BROWSER'].nil? ? nil : ENV['BROWSER'].to_sym browser_name = browser browser_name = [:browser] unless browser_name supported_browsers.each do |supported_browser| browser_name = supported_browser if [supported_browser] break if browser end if browser.nil? browser_name = CapybaraHelper::DEFAULT_BROWSER unless browser_name browser_name end |
#get_driver(metadata, driver:) ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/acceptance_test/rspec/rspec_helper.rb', line 106 def get_driver(, driver:) #driver = ENV['DRIVER'].nil? ? nil : ENV['DRIVER'].to_sym driver_name = driver driver_name = [:driver] unless driver_name supported_drivers.each do |supported_driver| driver_name = supported_driver if [supported_driver] break if driver end if driver.nil? driver_name = :selenium unless driver_name driver_name end |
#register_extensions ⇒ Object
92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/acceptance_test/rspec/rspec_helper.rb', line 92 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 # RSpec::Core::ExampleGroup.send :include, Capybara::DSL end |
#run_on_specs_finished(command) ⇒ Object
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 |
# File 'lib/acceptance_test/rspec/rspec_helper.rb', line 148 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 ⇒ Object
144 145 146 |
# File 'lib/acceptance_test/rspec/rspec_helper.rb', line 144 def supported_browsers [:chrome, :firefox] end |
#supported_drivers ⇒ Object
140 141 142 |
# File 'lib/acceptance_test/rspec/rspec_helper.rb', line 140 def supported_drivers [:selenium, :webkit] end |