ruby_raider 0.8.2 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aace14774067301e8684757746f8bcbfce04d3515e65760d5152e5161246d668
4
- data.tar.gz: 2ca8f14af7aef79f26c7fa95339f2d73f45ecf75c1b424f2318501dd576ef1ec
3
+ metadata.gz: ed1c1f61d9c3a4eaeb21508c43dc140afff1c17ac9314b8b1c7cea6632ea954d
4
+ data.tar.gz: 4106d65568c8ed549f94cb08413aaf8c335942609ba0d7d1eaa876a56727f831
5
5
  SHA512:
6
- metadata.gz: a52a934e23410edc20803c6b8e8c6f494c93b7f7cfd76427ed3d205c235524d5ee81213765daa3ab2053318118a6f9ab38100159d87bd19312aef411450496c0
7
- data.tar.gz: d1751f9086dfe00cc95dd8f5a39e246d6a8c57558dfd9caa82e434ea54c55d39b77e16a7a957e0f3a746392a6d4a4abb512fab21932816309923ef648a4ac3a0
6
+ metadata.gz: d1813f00173a8daf5974fbb47fa41368f53f748aa328f97f5c01f08975b363ccf403a5bf7a99ac76a4bb3546bd45ed9342a275fb4b9eab43d66a17add8742f67
7
+ data.tar.gz: f401808ed737b8150509af8347930d6d35013a0d29a3bb3c16e141d39ece0b0321f18025f3f31282001f76cd8dd5b611b21598f4adb9bc8025247aaa87b086f3
@@ -31,14 +31,8 @@ jobs:
31
31
  - name: Create allure-results folder
32
32
  run: mkdir -p allure-results
33
33
 
34
- - name: Create screenshots folder
35
- run: mkdir -p allure-results/screenshots
36
-
37
- - name: Prepare the browser options
38
- run: raider utility browser_options headless no-sandbox window-size=1920,1080
39
-
40
34
  - name: Build and test with rspec
41
- run: <%- if framework == 'cucumber' -%>cucumber features --format pretty <%- else -%>bundle exec rspec spec --format documentation<%- end %>
35
+ run: <%- if framework == 'cucumber' -%>cucumber features --format pretty <%- else -%>bundle exec rspec spec --format documentation<%- end -%>
42
36
 
43
37
  - name: Get Allure history
44
38
  uses: actions/checkout@v2
@@ -36,8 +36,4 @@ class CommonGenerator < Generator
36
36
  def create_allure_folder
37
37
  empty_directory "#{name}/allure-results"
38
38
  end
39
-
40
- def create_screenshots_folder
41
- empty_directory "#{name}/allure-results/screenshots"
42
- end
43
39
  end
@@ -1,4 +1,5 @@
1
1
  <%- if automation == 'sparkling_ios' -%>
2
+ require 'tmpdir'
2
3
  require_relative '../../helpers/allure_helper'
3
4
  require_relative '../../helpers/driver_helper'
4
5
 
@@ -10,11 +11,14 @@ Before do
10
11
  end
11
12
 
12
13
  After do |scenario|
13
- app.screenshot.save("allure-results/screenshots/#{scenario.name}.png")
14
- AllureHelper.add_screenshot(scenario.name)
14
+ Dir.mktmpdir do |temp_folder|
15
+ screenshot = app.screenshot.save("#{temp_folder}/#{scenario.name}.png")
16
+ AllureHelper.add_screenshot(scenario.name, screenshot)
17
+ end
15
18
  app.close
16
19
  end
17
20
  <%- else -%>
21
+ require 'tmpdir'
18
22
  require_relative '../../helpers/allure_helper'
19
23
  require_relative '../../helpers/driver_helper'
20
24
 
@@ -26,8 +30,10 @@ Before do
26
30
  end
27
31
 
28
32
  After do |scenario|
29
- driver.screenshot("allure-results/screenshots/#{scenario.name}.png")
30
- AllureHelper.add_screenshot(scenario.name)
33
+ Dir.mktmpdir do |temp_folder|
34
+ screenshot = driver.screenshot("#{temp_folder}/#{scenario.name}.png")
35
+ AllureHelper.add_screenshot(scenario.name, screenshot)
36
+ end
31
37
  driver.quit_driver
32
38
  end
33
- <%- end -%>
39
+ <%- end -%>
@@ -1,6 +1,7 @@
1
1
  <%- if visual_automation -%>
2
2
  # frozen_string_literal: true
3
3
 
4
+ require 'tmpdir'
4
5
  require_relative '../../helpers/allure_helper'
5
6
  require_relative '../../helpers/driver_helper'
6
7
  require_relative '../../helpers/visual_helper'
@@ -17,8 +18,10 @@ Before do
17
18
  end
18
19
 
19
20
  After do |scenario|
20
- driver.save_screenshot("allure-results/screenshots/#{scenario.name}.png")
21
- AllureHelper.add_screenshot(scenario.name)
21
+ Dir.mktmpdir do |temp_folder|
22
+ screenshot = driver.save_screenshot("#{temp_folder}/#{scenario.name}.png")
23
+ AllureHelper.add_screenshot(scenario.name, screenshot)
24
+ end
22
25
  @eyes.close
23
26
  @driver.quit
24
27
  @eyes.abort_async
@@ -29,6 +32,7 @@ end
29
32
  <%- else -%>
30
33
  # frozen_string_literal: true
31
34
 
35
+ require 'tmpdir'
32
36
  require_relative '../../helpers/driver_helper'
33
37
  require_relative '../../helpers/allure_helper'
34
38
 
@@ -39,8 +43,10 @@ Before do
39
43
  end
40
44
 
41
45
  After do |scenario|
42
- driver.save_screenshot("allure-results/screenshots/#{scenario.name}.png")
43
- AllureHelper.add_screenshot(scenario.name)
46
+ Dir.mktmpdir do |temp_folder|
47
+ screenshot = driver.save_screenshot("#{temp_folder}/#{scenario.name}.png")
48
+ AllureHelper.add_screenshot(scenario.name, screenshot)
49
+ end
44
50
  driver.quit
45
51
  end
46
- <%- end -%>
52
+ <%- end -%>
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'tmpdir'
3
4
  require_relative '../../helpers/allure_helper'
4
5
  require_relative '../../helpers/browser_helper'
5
6
 
@@ -10,7 +11,9 @@ Before do
10
11
  end
11
12
 
12
13
  After do |scenario|
13
- browser.screenshot.save("allure-results/screenshots/#{scenario.name}.png")
14
- AllureHelper.add_screenshot(scenario.name)
14
+ Dir.mktmpdir do |temp_folder|
15
+ screenshot = browser.screenshot.save("#{temp_folder}/#{scenario.name}.png")
16
+ AllureHelper.add_screenshot(scenario.name, screenshot)
17
+ end
15
18
  browser.quit
16
19
  end
@@ -1,5 +1,5 @@
1
1
  <% if %w[ios android cross_platform].include?(automation) -%>
2
2
  <%= ERB.new(File.read(File.expand_path('./partials/mobile_config.tt', __dir__))).result(binding) %>
3
3
  <% else -%>
4
- <%= ERB.new(File.read(File.expand_path('./partials/web_config.tt', __dir__))).result(binding) %>
4
+ <%= ERB.new(File.read(File.expand_path('./partials/web_config.tt', __dir__)), trim_mode: '-').result(binding) %>
5
5
  <% end -%>
@@ -1,3 +1,17 @@
1
1
  browser: :chrome
2
2
  url: 'https://automationteststore.com/'
3
3
 
4
+ <%- if automation == 'selenium' -%>
5
+ driver_options:
6
+ :timeouts:
7
+ :implicit: 10000 # 10 seconds
8
+ <% end -%>
9
+
10
+ browser_arguments:
11
+ :chrome:
12
+ - no-sandbox
13
+ - disable-dev-shm-usage
14
+ - ignore-certificate-errors
15
+ :firefox:
16
+ - acceptInsecureCerts
17
+ - no-sandbox
@@ -13,10 +13,10 @@ module AllureHelper
13
13
  end
14
14
  end
15
15
 
16
- def add_screenshot(screenshot_name)
16
+ def add_screenshot(name, file)
17
17
  Allure.add_attachment(
18
- name: name,
19
- source: File.open("allure-results/screenshots/#{screenshot_name}.png"),
18
+ name:,
19
+ source: file,
20
20
  type: Allure::ContentType::PNG,
21
21
  test_case: true
22
22
  )
@@ -28,4 +28,4 @@ module AllureHelper
28
28
  end
29
29
  <%- end -%>
30
30
  end
31
- end
31
+ end
@@ -11,10 +11,12 @@ module BrowserHelper
11
11
 
12
12
  private
13
13
 
14
+ def config
15
+ @config ||= YAML.load_file('config/config.yml')
16
+ end
17
+
14
18
  def create_browser(*args)
15
- @config = YAML.load_file('config/config.yml')
16
- browser = @config['browser'].to_sym
17
- args = args.empty? ? @config['browser_options'] : args
18
- @browser = Watir::Browser.new(browser, options: { args: args })
19
+ args = args.empty? ? config['browser_arguments'][config['browser']] : args
20
+ Watir::Browser.new(config['browser'], options: { args: args })
19
21
  end
20
- end
22
+ end
@@ -2,20 +2,24 @@
2
2
  def create_driver(*opts)
3
3
  @config = YAML.load_file('config/config.yml')
4
4
  browser = @config['browser'].to_sym
5
- Selenium::WebDriver.for(browser, options: browser_options(*opts))
5
+ Selenium::WebDriver.for(browser, options: create_webdriver_options(*opts))
6
6
  end
7
7
 
8
- def browser_options(*opts)
9
- opts = opts.empty? ? @config['browser_options'] : opts
10
- create_options(*opts)
8
+ def browser_arguments(*opts)
9
+ opts.empty? ? @config['browser_arguments'][@config['browser']] : opts
10
+ end
11
+
12
+ def driver_options
13
+ @config['driver_options']
11
14
  end
12
15
 
13
16
  # :reek:FeatureEnvy
14
- def create_options(*opts)
17
+ def create_webdriver_options(*opts)
15
18
  load_browser = @config['browser'].to_s
16
19
  browser = load_browser == 'ie' ? load_browser.upcase : load_browser.capitalize
17
20
  options = "Selenium::WebDriver::#{browser}::Options".constantize.new
18
- opts.each { |option| options.add_argument(option) }
21
+ browser_arguments(*opts).each { |arg| options.add_argument(arg) }
22
+ driver_options.each { |opt| options.add_option(opt.first, opt.last) }
19
23
  options
20
24
  end
21
25
 
@@ -1,8 +1,8 @@
1
1
  <% case automation
2
2
  when 'selenium' %>
3
- driver.save_screenshot("allure-results/screenshots/#{example_name}.png")
3
+ screenshot = driver.save_screenshot("#{temp_folder}/#{example_name}.png")
4
4
  <% when 'watir' %>
5
- browser.screenshot.save("allure-results/screenshots/#{example_name}.png")
5
+ screenshot = browser.screenshot.save("#{temp_folder}/#{example_name}.png")
6
6
  <% else %>
7
- driver.screenshot("allure-results/screenshots/#{example_name}.png")
8
- <% end %>
7
+ screenshot = driver.screenshot("#{temp_folder}/#{example_name}.png")
8
+ <% end %>
@@ -2,6 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require 'rspec'
5
+ require 'tmpdir'
5
6
  require_relative 'allure_helper'
6
7
  require_relative 'driver_helper'
7
8
  require 'sparkling_watir'
@@ -16,10 +17,12 @@ module SpecHelper
16
17
  app
17
18
  end
18
19
 
19
- config.after(:each) do
20
- example_name = self.class.descendant_filtered_examples.first.description
21
- app.screenshot.save("allure-results/screenshots/#{example_name}.png")
22
- AllureHelper.add_screenshot example_name
20
+ config.after(:each) do |example|
21
+ example_name = example.description
22
+ Dir.mktmpdir do |temp_folder|
23
+ app.screenshot.save("#{temp_folder}/#{example_name}.png")
24
+ AllureHelper.add_screenshot(example_name, screenshot)
25
+ end
23
26
  app.close
24
27
  end
25
28
  end
@@ -28,6 +31,7 @@ end
28
31
  # frozen_string_literal: true
29
32
 
30
33
  require 'rspec'
34
+ require 'tmpdir'
31
35
  require_relative 'allure_helper'
32
36
  <%- if automation == 'watir' -%>
33
37
  require_relative 'browser_helper'
@@ -55,12 +59,14 @@ module SpecHelper
55
59
  end
56
60
  <%- end -%>
57
61
 
58
- config.after(:each) do
59
- example_name = self.class.descendant_filtered_examples.first.description
60
- <%= ERB.new(File.read(File.expand_path('./partials/screenshot.tt', __dir__)), trim_mode: '-').result(binding).strip! %>
61
- AllureHelper.add_screenshot example_name
62
+ config.after(:each) do |example|
63
+ example_name = example.description
64
+ Dir.mktmpdir do |temp_folder|
65
+ <%= ERB.new(File.read(File.expand_path('./partials/screenshot.tt', __dir__)), trim_mode: '-').result(binding).strip! %>
66
+ AllureHelper.add_screenshot(example_name, screenshot)
67
+ end
62
68
  <%= ERB.new(File.read(File.expand_path('./partials/quit_driver.tt', __dir__)), trim_mode: '-').result(binding).strip! %>
63
69
  end
64
70
  end
65
71
  end
66
- <%- end -%>
72
+ <%- end -%>
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'rspec'
4
+ require 'tmpdir'
4
5
  require 'eyes_selenium'
5
6
  require_relative 'allure_helper'
6
7
  require_relative 'driver_helper'
@@ -18,13 +19,15 @@ module SpecHelper
18
19
  @driver = @eyes.open(driver: driver)
19
20
  end
20
21
 
21
- config.after(:each) do
22
- example_name = self.class.descendant_filtered_examples.first.description
23
- driver.save_screenshot("allure-results/screenshots/#{example_name}.png")
22
+ config.after(:each) do |example|
23
+ example_name = example.description
24
+ Dir.mktmpdir do |temp_folder|
25
+ <%= ERB.new(File.read(File.expand_path('./partials/screenshot.tt', __dir__)), trim_mode: '-').result(binding).strip! %>
26
+ AllureHelper.add_screenshot(example_name, screenshot)
27
+ end
24
28
  @eyes.close
25
29
  @driver.quit
26
30
  @eyes.abort_async
27
- AllureHelper.add_screenshot example_name
28
31
  results = @grid_runner.get_all_test_results
29
32
  puts results
30
33
  end
data/lib/ruby_raider.rb CHANGED
@@ -19,7 +19,7 @@ module RubyRaider
19
19
  desc 'version', 'It shows the version of Ruby Raider you are currently using'
20
20
 
21
21
  def version
22
- puts 'The Ruby Raider version is 0.8.2, Happy testing!'
22
+ puts 'The Ruby Raider version is 0.8.3, Happy testing!'
23
23
  end
24
24
 
25
25
  map 'v' => 'version'
data/ruby_raider.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'ruby_raider'
5
- s.version = '0.8.2'
5
+ s.version = '0.8.3'
6
6
  s.summary = 'A gem to make setup and start of UI automation projects easier'
7
7
  s.description = 'This gem has everything you need to start working with test automation'
8
8
  s.authors = ['Agustin Pequeno']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_raider
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agustin Pequeno
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-20 00:00:00.000000000 Z
11
+ date: 2023-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -308,7 +308,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
308
308
  - !ruby/object:Gem::Version
309
309
  version: '0'
310
310
  requirements: []
311
- rubygems_version: 3.4.19
311
+ rubygems_version: 3.4.10
312
312
  signing_key:
313
313
  specification_version: 4
314
314
  summary: A gem to make setup and start of UI automation projects easier