diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-23 12:08:38 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-23 12:08:38 +0000 |
commit | 5ad0cf26551baff8f08af8562a8d45e6ec14d71a (patch) | |
tree | 57f1a6bad31bcd11efacd3fdfb9cc92f88fb6a86 /qa/qa/runtime | |
parent | f47c768fad17d4c876e96524f83f8306f071db66 (diff) | |
download | gitlab-ce-5ad0cf26551baff8f08af8562a8d45e6ec14d71a.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'qa/qa/runtime')
-rw-r--r-- | qa/qa/runtime/browser.rb | 42 | ||||
-rw-r--r-- | qa/qa/runtime/release.rb | 10 |
2 files changed, 10 insertions, 42 deletions
diff --git a/qa/qa/runtime/browser.rb b/qa/qa/runtime/browser.rb index ec78759f6c8..69ba90702be 100644 --- a/qa/qa/runtime/browser.rb +++ b/qa/qa/runtime/browser.rb @@ -15,10 +15,6 @@ module QA CAPYBARA_MAX_WAIT_TIME = 10 - class << self - attr_accessor :rspec_configured, :capybara_configured - end - def initialize self.class.configure! end @@ -49,49 +45,11 @@ module QA end def self.configure! - configure_rspec! - configure_capybara! - end - - def self.configure_rspec! - # We don't want to enter this infinite loop: - # Runtime::Release.perform_before_hooks -> `QA::Runtime::Browser.visit` -> configure! -> configure_rspec! -> Runtime::Release.perform_before_hooks - # So we make sure this method is called only once. - return if self.rspec_configured - - browser = self - RSpec.configure do |config| config.define_derived_metadata(file_path: %r{/qa/specs/features/}) do |metadata| metadata[:type] = :feature end - - config.before(:suite) do - unless browser.rspec_configured - browser.rspec_configured = true - - ## - # Perform before hooks, which are different for CE and EE - # - begin - Runtime::Release.perform_before_hooks - rescue - saved = Capybara::Screenshot.screenshot_and_save_page - - QA::Runtime::Logger.error("Screenshot: #{saved[:image]}") if saved&.key?(:image) - QA::Runtime::Logger.error("HTML capture: #{saved[:html]}") if saved&.key?(:html) - - raise - end - end - end end - end - - def self.configure_capybara! - return if self.capybara_configured - - self.capybara_configured = true Capybara.server_port = 9887 + ENV['TEST_ENV_NUMBER'].to_i diff --git a/qa/qa/runtime/release.rb b/qa/qa/runtime/release.rb index 18a6736afcf..1cd0c62563b 100644 --- a/qa/qa/runtime/release.rb +++ b/qa/qa/runtime/release.rb @@ -1,5 +1,8 @@ # frozen_string_literal: true +require 'capybara/rspec' +require 'capybara-screenshot/rspec' + module QA module Runtime ## @@ -24,6 +27,13 @@ module QA def self.method_missing(name, *args) self.new.strategy.public_send(name, *args) + rescue + saved = Capybara::Screenshot.screenshot_and_save_page + + QA::Runtime::Logger.error("Screenshot: #{saved[:image]}") if saved&.key?(:image) + QA::Runtime::Logger.error("HTML capture: #{saved[:html]}") if saved&.key?(:html) + + raise end end end |