Dduvall has uploaded a new change for review.
https://gerrit.wikimedia.org/r/180080
Change subject: Fixed screenshots upon failed scenarios
......................................................................
Fixed screenshots upon failed scenarios
Environment#teardown now yields each browser before it's closed. The
screenshot hook makes use of this to screenshot each browser upon
failure.
Change-Id: Ie8162f9009f303c1ea8ca525faaeb4ac5a0251df
---
M lib/mediawiki_selenium/browser_factory/chrome.rb
M lib/mediawiki_selenium/browser_factory/firefox.rb
M lib/mediawiki_selenium/browser_factory/phantomjs.rb
M lib/mediawiki_selenium/environment.rb
M lib/mediawiki_selenium/support/hooks.rb
5 files changed, 28 insertions(+), 14 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/selenium
refs/changes/80/180080/1
diff --git a/lib/mediawiki_selenium/browser_factory/chrome.rb
b/lib/mediawiki_selenium/browser_factory/chrome.rb
index b0178a0..c0ff635 100644
--- a/lib/mediawiki_selenium/browser_factory/chrome.rb
+++ b/lib/mediawiki_selenium/browser_factory/chrome.rb
@@ -6,6 +6,8 @@
# - browser_language
# - browser_user_agent
#
+ # @see Base
+ #
class Chrome < Base
bind(:browser_language) do |language, options|
options[:prefs]["intl.accept_languages"] = language
diff --git a/lib/mediawiki_selenium/browser_factory/firefox.rb
b/lib/mediawiki_selenium/browser_factory/firefox.rb
index 6ffaf33..e45abc1 100644
--- a/lib/mediawiki_selenium/browser_factory/firefox.rb
+++ b/lib/mediawiki_selenium/browser_factory/firefox.rb
@@ -7,8 +7,9 @@
# - browser_timeout
# - browser_user_agent
#
+ # @see Base
+ #
class Firefox < Base
-
bind(:browser_timeout) do |timeout, options|
timeout = timeout.to_i
options[:profile]["dom.max_script_run_time"] = timeout
diff --git a/lib/mediawiki_selenium/browser_factory/phantomjs.rb
b/lib/mediawiki_selenium/browser_factory/phantomjs.rb
index 112bc65..bc3f2fb 100644
--- a/lib/mediawiki_selenium/browser_factory/phantomjs.rb
+++ b/lib/mediawiki_selenium/browser_factory/phantomjs.rb
@@ -6,6 +6,8 @@
# - browser_language
# - browser_user_agent
#
+ # @see Base
+ #
class Phantomjs < Base
bind(:browser_language) do |language, options|
options[:desired_capabilities]["phantomjs.page.customHeaders.Accept-Language"]
= language
diff --git a/lib/mediawiki_selenium/environment.rb
b/lib/mediawiki_selenium/environment.rb
index 7790ba7..823919f 100644
--- a/lib/mediawiki_selenium/environment.rb
+++ b/lib/mediawiki_selenium/environment.rb
@@ -287,14 +287,21 @@
#
# @example Teardown environment resources after each scenario completes
# After do
- # teardown(scenario.passed?)
+ # teardown(scenario.status)
# end
#
# @param status [Symbol] Status of the executed scenario.
#
+ # @yield [browser]
+ # @yieldparam browser [Watir::Browser] Browser object, before it's closed.
+ #
def teardown(status = :passed)
@factory_cache.each do |_, factory|
- factory.each { |browser| browser.close } unless keep_browser_open?
+ factory.each do |browser|
+ yield browser if block_given?
+ browser.close unless keep_browser_open?
+ end
+
factory.teardown(self, status)
end
end
diff --git a/lib/mediawiki_selenium/support/hooks.rb
b/lib/mediawiki_selenium/support/hooks.rb
index d0d7441..ea7edda 100644
--- a/lib/mediawiki_selenium/support/hooks.rb
+++ b/lib/mediawiki_selenium/support/hooks.rb
@@ -80,18 +80,20 @@
end
After do |scenario|
- if @browser && scenario.failed? && lookup(:screenshot_failures) == "true"
- require "fileutils"
- screen_dir = lookup(:screenshot_failures_path) || "screenshots"
- FileUtils.mkdir_p screen_dir
- name = test_name(scenario).gsub(/ /, '_')
- path = "#{screen_dir}/#{name}.png"
- @browser.screenshot.save path
- embed path, "image/png"
- end
-
if scenario.respond_to?(:status)
- teardown(scenario.status)
+ require "fileutils"
+
+ teardown(scenario.status) do |browser|
+ if scenario.failed? && lookup(:screenshot_failures, default: false) ==
"true"
+ screen_dir = lookup(:screenshot_failures_path, default: "screenshots")
+ FileUtils.mkdir_p screen_dir
+ name = test_name(scenario).gsub(/ /, '_')
+ path = "#{screen_dir}/#{name}.png"
+ browser.screenshot.save path
+ embed path, "image/png"
+ end
+
+ end
else
teardown
end
--
To view, visit https://gerrit.wikimedia.org/r/180080
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie8162f9009f303c1ea8ca525faaeb4ac5a0251df
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/selenium
Gerrit-Branch: env-abstraction-layer
Gerrit-Owner: Dduvall <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits