ruby_raider 0.8.1 → 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 +4 -4
- data/lib/generators/actions/templates/actions.tt +0 -3
- 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
- data/spec/automation_generator_spec.rb +9 -9
- 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,9 +31,6 @@ 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
34
|
- name: Build and test with rspec
|
|
38
35
|
run: <%- if framework == 'cucumber' -%>cucumber features --format pretty <%- else -%>bundle exec rspec spec --format documentation<%- end -%>
|
|
39
36
|
|
|
@@ -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']
|
|
@@ -6,43 +6,43 @@ require_relative 'spec_helper'
|
|
|
6
6
|
describe AutomationGenerator do
|
|
7
7
|
shared_examples 'creates web automation framework' do |name|
|
|
8
8
|
it 'creates a login page file' do
|
|
9
|
-
expect(File).to exist("#{name}/page_objects/pages/
|
|
9
|
+
expect(File).to exist("#{name}/page_objects/pages/login.rb")
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
it 'creates an abstract page file' do
|
|
13
|
-
expect(File).to exist("#{name}/page_objects/abstract/
|
|
13
|
+
expect(File).to exist("#{name}/page_objects/abstract/page.rb")
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
it 'creates an abstract component file' do
|
|
17
|
-
expect(File).to exist("#{name}/page_objects/abstract/
|
|
17
|
+
expect(File).to exist("#{name}/page_objects/abstract/component.rb")
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
it 'creates a component file' do
|
|
21
|
-
expect(File).to exist("#{name}/page_objects/components/
|
|
21
|
+
expect(File).to exist("#{name}/page_objects/components/header.rb")
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
shared_examples 'creates mobile automation framework' do |name|
|
|
26
26
|
it 'creates a home page file' do
|
|
27
|
-
expect(File).to exist("#{name}/page_objects/pages/
|
|
27
|
+
expect(File).to exist("#{name}/page_objects/pages/home.rb")
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
it 'creates an abstract page file' do
|
|
31
|
-
expect(File).to exist("#{name}/page_objects/abstract/
|
|
31
|
+
expect(File).to exist("#{name}/page_objects/abstract/page.rb")
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
it 'creates a pdp page file' do
|
|
35
|
-
expect(File).to exist("#{name}/page_objects/pages/
|
|
35
|
+
expect(File).to exist("#{name}/page_objects/pages/pdp.rb")
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
shared_examples 'creates web visual framework' do |name|
|
|
40
40
|
it 'creates a login page file' do
|
|
41
|
-
expect(File).to exist("#{name}/page_objects/pages/
|
|
41
|
+
expect(File).to exist("#{name}/page_objects/pages/login.rb")
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
it 'creates an abstract page file' do
|
|
45
|
-
expect(File).to exist("#{name}/page_objects/abstract/
|
|
45
|
+
expect(File).to exist("#{name}/page_objects/abstract/page.rb")
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
|
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
|