ruby_raider 0.9.3 → 0.9.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/integration.yml +5 -5
- data/.github/workflows/selenium.yml +22 -0
- data/.github/workflows/watir.yml +22 -0
- data/README.md +24 -18
- data/lib/generators/automation/templates/account.tt +2 -2
- data/lib/generators/automation/templates/appium_caps.tt +2 -2
- data/lib/generators/automation/templates/home.tt +3 -2
- data/lib/generators/automation/templates/login.tt +2 -2
- data/lib/generators/automation/templates/page.tt +4 -4
- data/lib/generators/automation/templates/partials/element.tt +1 -1
- data/lib/generators/automation/templates/partials/home_page_selector.tt +2 -2
- data/lib/generators/automation/templates/partials/initialize_selector.tt +1 -1
- data/lib/generators/automation/templates/partials/pdp_page_selector.tt +2 -2
- data/lib/generators/automation/templates/partials/selenium_login.tt +1 -1
- data/lib/generators/automation/templates/partials/url_methods.tt +1 -1
- data/lib/generators/automation/templates/partials/visit_method.tt +2 -2
- data/lib/generators/automation/templates/pdp.tt +3 -2
- data/lib/generators/cucumber/templates/env.tt +6 -7
- data/lib/generators/cucumber/templates/feature.tt +7 -3
- data/lib/generators/cucumber/templates/partials/appium_env.tt +1 -4
- data/lib/generators/cucumber/templates/partials/driver_world.tt +4 -3
- data/lib/generators/cucumber/templates/partials/mobile_steps.tt +7 -7
- data/lib/generators/cucumber/templates/partials/selenium_env.tt +6 -6
- data/lib/generators/cucumber/templates/partials/watir_env.tt +1 -4
- data/lib/generators/cucumber/templates/partials/web_steps.tt +10 -3
- data/lib/generators/cucumber/templates/steps.tt +3 -3
- data/lib/generators/cucumber/templates/world.tt +1 -1
- data/lib/generators/generator.rb +15 -5
- data/lib/generators/helper_generator.rb +1 -1
- data/lib/generators/invoke_generators.rb +2 -6
- data/lib/generators/menu_generator.rb +7 -21
- data/lib/generators/rspec/rspec_generator.rb +1 -1
- data/lib/generators/rspec/templates/spec.tt +7 -7
- data/lib/generators/templates/common/config.tt +1 -1
- data/lib/generators/templates/common/gemfile.tt +13 -13
- data/lib/generators/templates/common/partials/automation_gems.tt +1 -1
- data/lib/generators/templates/common/partials/web_config.tt +1 -1
- data/lib/generators/templates/common/read_me.tt +21 -15
- data/lib/generators/templates/common/rubocop.tt +1 -1
- data/lib/generators/templates/helpers/allure_helper.tt +2 -2
- data/lib/generators/templates/helpers/driver_helper.tt +10 -8
- data/lib/generators/templates/helpers/partials/allure_imports.tt +1 -1
- data/lib/generators/templates/helpers/partials/allure_requirements.tt +1 -1
- data/lib/generators/templates/helpers/partials/driver_and_options.tt +3 -3
- data/lib/generators/templates/helpers/partials/quit_driver.tt +5 -6
- data/lib/generators/templates/helpers/partials/screenshot.tt +6 -7
- data/lib/generators/templates/helpers/spec_helper.tt +5 -5
- data/lib/utilities/utilities.rb +1 -1
- data/lib/version +1 -1
- data/spec/integration/commands/scaffolding_commands_spec.rb +1 -1
- data/spec/integration/commands/utility_commands_spec.rb +3 -3
- data/spec/integration/generators/actions_generator_spec.rb +1 -1
- data/spec/integration/generators/automation_generator_spec.rb +4 -4
- data/spec/integration/generators/common_generator_spec.rb +13 -20
- data/spec/integration/generators/cucumber_generator_spec.rb +2 -2
- data/spec/integration/generators/helpers_generator_spec.rb +13 -13
- data/spec/integration/generators/rspec_generator_spec.rb +2 -2
- data/spec/{support → integration}/settings_helper.rb +1 -3
- data/spec/integration/spec_helper.rb +33 -0
- data/spec/system/selenium_spec.rb +40 -0
- data/spec/system/watir_spec.rb +40 -0
- metadata +8 -6
- data/.github/workflows/rspec_selenium.yml +0 -42
- data/.github/workflows/rspec_watir.yml +0 -42
- data/spec/spec_helper.rb +0 -35
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative '../../../lib/generators/helper_generator'
|
4
|
-
require_relative '
|
4
|
+
require_relative '../spec_helper'
|
5
5
|
|
6
6
|
describe HelpersGenerator do
|
7
7
|
shared_examples 'creates common helpers' do |name|
|
@@ -35,7 +35,7 @@ describe HelpersGenerator do
|
|
35
35
|
end
|
36
36
|
|
37
37
|
shared_examples 'creates cross platform helpers' do |name|
|
38
|
-
it 'creates
|
38
|
+
it 'creates an appium helper file' do
|
39
39
|
expect(File).to exist("#{name}/helpers/appium_helper.rb")
|
40
40
|
end
|
41
41
|
end
|
@@ -59,9 +59,9 @@ describe HelpersGenerator do
|
|
59
59
|
end
|
60
60
|
|
61
61
|
context 'with rspec, selenium and applitools' do
|
62
|
-
include_examples 'creates common visual helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
63
|
-
include_examples 'creates selenium helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
64
|
-
include_examples 'creates rspec helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
62
|
+
include_examples 'creates common visual helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
|
63
|
+
include_examples 'creates selenium helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
|
64
|
+
include_examples 'creates rspec helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
|
65
65
|
end
|
66
66
|
|
67
67
|
context 'with cucumber and selenium' do
|
@@ -101,16 +101,16 @@ describe HelpersGenerator do
|
|
101
101
|
end
|
102
102
|
|
103
103
|
context 'with rspec and appium cross platform' do
|
104
|
-
include_examples 'creates common helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
105
|
-
include_examples 'creates selenium helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
106
|
-
include_examples 'creates rspec helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
107
|
-
include_examples 'creates cross platform helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
104
|
+
include_examples 'creates common helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[4]}"
|
105
|
+
include_examples 'creates selenium helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[4]}"
|
106
|
+
include_examples 'creates rspec helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[4]}"
|
107
|
+
include_examples 'creates cross platform helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[4]}"
|
108
108
|
end
|
109
109
|
|
110
110
|
context 'with cucumber and appium cross platform' do
|
111
|
-
include_examples 'creates common helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES
|
112
|
-
include_examples 'creates selenium helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES
|
113
|
-
include_examples 'creates cucumber helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES
|
114
|
-
include_examples 'creates cross platform helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES
|
111
|
+
include_examples 'creates common helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[4]}"
|
112
|
+
include_examples 'creates selenium helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[4]}"
|
113
|
+
include_examples 'creates cucumber helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[4]}"
|
114
|
+
include_examples 'creates cross platform helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[4]}"
|
115
115
|
end
|
116
116
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative '../../../lib/generators/rspec/rspec_generator'
|
4
|
-
require_relative '
|
4
|
+
require_relative '../spec_helper'
|
5
5
|
|
6
6
|
describe RspecGenerator do
|
7
7
|
shared_examples 'creates factory files' do |project_name|
|
@@ -44,6 +44,6 @@ describe RspecGenerator do
|
|
44
44
|
|
45
45
|
context 'with rspec and appium cross platform' do
|
46
46
|
include_examples 'creates rspec files examples',
|
47
|
-
"#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
47
|
+
"#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[4]}", 'pdp'
|
48
48
|
end
|
49
49
|
end
|
@@ -4,13 +4,11 @@
|
|
4
4
|
module SettingsHelper
|
5
5
|
def create_settings(options)
|
6
6
|
automation = options[:automation]
|
7
|
-
visual = options[:visual]
|
8
7
|
framework = options[:framework]
|
9
8
|
{
|
10
9
|
automation:,
|
11
10
|
framework:,
|
12
|
-
name: "#{framework}_#{automation}
|
13
|
-
visual:
|
11
|
+
name: "#{framework}_#{automation}"
|
14
12
|
}
|
15
13
|
end
|
16
14
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
require 'rspec'
|
5
|
+
require_relative '../../lib/generators/invoke_generators'
|
6
|
+
require_relative 'settings_helper'
|
7
|
+
|
8
|
+
AUTOMATION_TYPES = %w[android ios selenium watir cross_platform axe applitools].freeze
|
9
|
+
FRAMEWORKS = %w[cucumber rspec].freeze
|
10
|
+
|
11
|
+
RSpec.configure do |config|
|
12
|
+
config.include(InvokeGenerators)
|
13
|
+
config.include(SettingsHelper)
|
14
|
+
# rubocop:disable RSpec/BeforeAfterAll
|
15
|
+
config.before(:all) do
|
16
|
+
FRAMEWORKS.each do |framework|
|
17
|
+
AUTOMATION_TYPES.each do |automation|
|
18
|
+
settings = create_settings(framework:, automation:)
|
19
|
+
generate_framework(settings)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
config.after(:all) do
|
25
|
+
FRAMEWORKS.each do |framework|
|
26
|
+
AUTOMATION_TYPES.each do |automation|
|
27
|
+
settings = create_settings(framework:, automation:)
|
28
|
+
FileUtils.rm_rf(settings[:name])
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
# rubocop:enable RSpec/BeforeAfterAll
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require_relative '../../lib/ruby_raider'
|
2
|
+
|
3
|
+
FRAMEWORKS = %w[cucumber rspec].freeze
|
4
|
+
|
5
|
+
describe 'Selenium based frameworks' do
|
6
|
+
before do
|
7
|
+
FRAMEWORKS.each do |framework|
|
8
|
+
RubyRaider::Raider
|
9
|
+
.new.invoke(:new, nil, %W[selenium_#{framework} -p framework:#{framework} automation:selenium])
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
after do
|
14
|
+
FRAMEWORKS.each do |framework|
|
15
|
+
FileUtils.rm_rf("selenium_#{framework}")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
shared_examples 'creates web automation framework' do |type|
|
20
|
+
it 'executes without errors' do
|
21
|
+
run_tests_with(type)
|
22
|
+
expect($stdout).not_to match(/StandardError/)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'with rspec' do
|
27
|
+
include_examples 'creates web automation framework', 'rspec'
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'with cucumber' do
|
31
|
+
include_examples 'creates web automation framework', 'cucumber'
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def run_tests_with(framework)
|
37
|
+
folder = framework == 'rspec' ? 'spec' : 'features'
|
38
|
+
system("cd selenium_#{framework} && bundle install && raider utility browser_options chrome headless && bundle exec #{framework} #{folder}")
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require_relative '../../lib/ruby_raider'
|
2
|
+
|
3
|
+
FRAMEWORKS = %w[cucumber rspec].freeze
|
4
|
+
|
5
|
+
describe 'Watir based frameworks' do
|
6
|
+
before do
|
7
|
+
FRAMEWORKS.each do |framework|
|
8
|
+
RubyRaider::Raider
|
9
|
+
.new.invoke(:new, nil, %W[watir_#{framework} -p framework:#{framework} automation:watir])
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
after do
|
14
|
+
FRAMEWORKS.each do |framework|
|
15
|
+
FileUtils.rm_rf("watir_#{framework}")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
shared_examples 'creates web automation framework' do |type|
|
20
|
+
it 'executes without errors' do
|
21
|
+
run_tests_with(type)
|
22
|
+
expect($stdout).not_to match(/StandardError/)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'with rspec' do
|
27
|
+
include_examples 'creates web automation framework', 'rspec'
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'with cucumber' do
|
31
|
+
include_examples 'creates web automation framework', 'cucumber'
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def run_tests_with(framework)
|
37
|
+
folder = framework == 'rspec' ? 'spec' : 'features'
|
38
|
+
system("cd watir_#{framework} && bundle install && raider utility browser_options chrome headless && bundle exec #{framework} #{folder}")
|
39
|
+
end
|
40
|
+
end
|
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.9.
|
4
|
+
version: 0.9.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Agustin Pequeno
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-07-
|
11
|
+
date: 2024-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -136,9 +136,9 @@ files:
|
|
136
136
|
- ".github/workflows/integration.yml"
|
137
137
|
- ".github/workflows/push_gem.yml"
|
138
138
|
- ".github/workflows/reek.yml"
|
139
|
-
- ".github/workflows/rspec_selenium.yml"
|
140
|
-
- ".github/workflows/rspec_watir.yml"
|
141
139
|
- ".github/workflows/rubocop.yml"
|
140
|
+
- ".github/workflows/selenium.yml"
|
141
|
+
- ".github/workflows/watir.yml"
|
142
142
|
- ".gitignore"
|
143
143
|
- ".reek.yml"
|
144
144
|
- ".rubocop.yml"
|
@@ -240,8 +240,10 @@ files:
|
|
240
240
|
- spec/integration/generators/cucumber_generator_spec.rb
|
241
241
|
- spec/integration/generators/helpers_generator_spec.rb
|
242
242
|
- spec/integration/generators/rspec_generator_spec.rb
|
243
|
-
- spec/
|
244
|
-
- spec/
|
243
|
+
- spec/integration/settings_helper.rb
|
244
|
+
- spec/integration/spec_helper.rb
|
245
|
+
- spec/system/selenium_spec.rb
|
246
|
+
- spec/system/watir_spec.rb
|
245
247
|
homepage: https://github.com/RubyRaider/ruby_raider
|
246
248
|
licenses:
|
247
249
|
- MIT
|
@@ -1,42 +0,0 @@
|
|
1
|
-
name: BrowserStack Test
|
2
|
-
on: [ pull_request ]
|
3
|
-
|
4
|
-
jobs:
|
5
|
-
ubuntu-job:
|
6
|
-
name: BrowserStack Test on Ubuntu
|
7
|
-
runs-on: ubuntu-latest
|
8
|
-
steps:
|
9
|
-
- name: BrowserStack Env Setup
|
10
|
-
uses: browserstack/github-actions/setup-env@master
|
11
|
-
with:
|
12
|
-
username: ${{ secrets.BROWSERSTACK_USERNAME }}
|
13
|
-
access-key: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
|
14
|
-
build-name: BUILD_INFO
|
15
|
-
project-name: REPO_NAME
|
16
|
-
- name: BrowserStackLocal Setup
|
17
|
-
uses: browserstack/github-actions/setup-local@master
|
18
|
-
with:
|
19
|
-
local-testing: start
|
20
|
-
|
21
|
-
|
22
|
-
- name: Checkout the repository
|
23
|
-
uses: actions/checkout@v2
|
24
|
-
|
25
|
-
- name: Set up Ruby
|
26
|
-
uses: ruby/setup-ruby@f20f1eae726df008313d2e0d78c5e602562a1bcf
|
27
|
-
with:
|
28
|
-
ruby-version: head
|
29
|
-
|
30
|
-
- name: Install gems
|
31
|
-
run: bundle install
|
32
|
-
|
33
|
-
- name: Create Raider framework
|
34
|
-
run: bin/raider new rspec_selenium -p framework:rspec automation:selenium visual:false axe:true
|
35
|
-
|
36
|
-
- name: Run Raider tests
|
37
|
-
run: cd rspec_selenium && bundle install && raider utility browser_options chrome headless && rspec spec/
|
38
|
-
|
39
|
-
- name: BrowserStackLocal Stop
|
40
|
-
uses: browserstack/github-actions/setup-local@master
|
41
|
-
with:
|
42
|
-
local-testing: stop
|
@@ -1,42 +0,0 @@
|
|
1
|
-
name: BrowserStack Test
|
2
|
-
on: [ pull_request ]
|
3
|
-
|
4
|
-
jobs:
|
5
|
-
ubuntu-job:
|
6
|
-
name: BrowserStack Test on Ubuntu
|
7
|
-
runs-on: ubuntu-latest
|
8
|
-
steps:
|
9
|
-
- name: BrowserStack Env Setup
|
10
|
-
uses: browserstack/github-actions/setup-env@master
|
11
|
-
with:
|
12
|
-
username: ${{ secrets.BROWSERSTACK_USERNAME }}
|
13
|
-
access-key: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
|
14
|
-
build-name: BUILD_INFO
|
15
|
-
project-name: REPO_NAME
|
16
|
-
- name: BrowserStackLocal Setup
|
17
|
-
uses: browserstack/github-actions/setup-local@master
|
18
|
-
with:
|
19
|
-
local-testing: start
|
20
|
-
|
21
|
-
|
22
|
-
- name: Checkout the repository
|
23
|
-
uses: actions/checkout@v2
|
24
|
-
|
25
|
-
- name: Set up Ruby
|
26
|
-
uses: ruby/setup-ruby@f20f1eae726df008313d2e0d78c5e602562a1bcf
|
27
|
-
with:
|
28
|
-
ruby-version: head
|
29
|
-
|
30
|
-
- name: Install gems
|
31
|
-
run: bundle install
|
32
|
-
|
33
|
-
- name: Create Raider framework
|
34
|
-
run: bin/raider new rspec_watir -p framework:rspec automation:watir visual:false axe:true
|
35
|
-
|
36
|
-
- name: Run Raider tests
|
37
|
-
run: cd rspec_selenium && bundle install && raider utility browser_options chrome headless && rspec spec/
|
38
|
-
|
39
|
-
- name: BrowserStackLocal Stop
|
40
|
-
uses: browserstack/github-actions/setup-local@master
|
41
|
-
with:
|
42
|
-
local-testing: stop
|
data/spec/spec_helper.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'fileutils'
|
4
|
-
require 'rspec'
|
5
|
-
require_relative '../lib/generators/invoke_generators'
|
6
|
-
require_relative 'support/settings_helper'
|
7
|
-
|
8
|
-
AUTOMATION_TYPES = %w[android ios selenium watir cross_platform].freeze
|
9
|
-
FRAMEWORKS = %w[cucumber rspec].freeze
|
10
|
-
|
11
|
-
RSpec.configure do |config|
|
12
|
-
config.include(InvokeGenerators)
|
13
|
-
config.include(SettingsHelper)
|
14
|
-
config.before(:all) do
|
15
|
-
FRAMEWORKS.each do |framework|
|
16
|
-
AUTOMATION_TYPES.each do |automation|
|
17
|
-
[true, false].each do |visual|
|
18
|
-
settings = create_settings(framework:, automation:, visual:)
|
19
|
-
generate_framework(settings)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
config.after(:all) do
|
26
|
-
FRAMEWORKS.each do |framework|
|
27
|
-
AUTOMATION_TYPES.each do |automation|
|
28
|
-
[true, false].each do |visual|
|
29
|
-
settings = create_settings(framework:, automation:, visual:)
|
30
|
-
FileUtils.rm_rf(settings[:name])
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|