ruby_raider 0.8.2 → 0.8.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/generators/actions/templates/actions.tt +1 -7
- data/lib/generators/common_generator.rb +0 -4
- data/lib/generators/cucumber/templates/partials/appium_env.tt +11 -5
- data/lib/generators/cucumber/templates/partials/selenium_env.tt +11 -5
- data/lib/generators/cucumber/templates/partials/watir_env.tt +5 -2
- data/lib/generators/templates/common/config.tt +1 -1
- data/lib/generators/templates/common/partials/web_config.tt +14 -0
- data/lib/generators/templates/helpers/allure_helper.tt +4 -4
- data/lib/generators/templates/helpers/browser_helper.tt +7 -5
- data/lib/generators/templates/helpers/partials/driver_and_options.tt +10 -6
- data/lib/generators/templates/helpers/partials/screenshot.tt +4 -4
- data/lib/generators/templates/helpers/spec_helper.tt +15 -9
- data/lib/generators/templates/helpers/visual_spec_helper.tt +7 -4
- data/lib/ruby_raider.rb +1 -1
- data/ruby_raider.gemspec +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed1c1f61d9c3a4eaeb21508c43dc140afff1c17ac9314b8b1c7cea6632ea954d
|
4
|
+
data.tar.gz: 4106d65568c8ed549f94cb08413aaf8c335942609ba0d7d1eaa876a56727f831
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
@@ -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
|
-
|
14
|
-
|
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
|
-
|
30
|
-
|
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
|
-
|
21
|
-
|
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
|
-
|
43
|
-
|
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
|
-
|
14
|
-
|
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(
|
16
|
+
def add_screenshot(name, file)
|
17
17
|
Allure.add_attachment(
|
18
|
-
name
|
19
|
-
source:
|
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
|
-
|
16
|
-
|
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:
|
5
|
+
Selenium::WebDriver.for(browser, options: create_webdriver_options(*opts))
|
6
6
|
end
|
7
7
|
|
8
|
-
def
|
9
|
-
opts
|
10
|
-
|
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
|
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 { |
|
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("
|
3
|
+
screenshot = driver.save_screenshot("#{temp_folder}/#{example_name}.png")
|
4
4
|
<% when 'watir' %>
|
5
|
-
browser.screenshot.save("
|
5
|
+
screenshot = browser.screenshot.save("#{temp_folder}/#{example_name}.png")
|
6
6
|
<% else %>
|
7
|
-
driver.screenshot("
|
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 =
|
21
|
-
|
22
|
-
|
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 =
|
60
|
-
|
61
|
-
|
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 =
|
23
|
-
|
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.
|
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.
|
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.
|
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-
|
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.
|
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
|