ruby_raider 0.9.4 → 0.9.5
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/.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/templates/common/read_me.tt +21 -15
- 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
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 279c26bb0d8d1a27d95b0510587e6828e2164c84a334c41b84b57db98f04867c
|
|
4
|
+
data.tar.gz: c024426fe0bbb58b912ac6bf07a0867110dc340c4946d4e3eab499e25a38b2ce
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '028fcaca7bd181054203e2d50d54fa2399608725379ffd63e003f2efd43f9b6274fa9a014e7ffb0da28eff2f077b48fb4d4d6ae5c53f3db9f14f1958f4e451e4'
|
|
7
|
+
data.tar.gz: 9ef33293321c2f08b1942c2c82d2bc0be57f9245335be00bcefe4d145a5c7abb842e5274ba313e21dec17e756cbf6fc4f9fa7f4d74887e630791a4ae0adbde91
|
|
@@ -8,13 +8,13 @@ jobs:
|
|
|
8
8
|
runs-on: ubuntu-latest
|
|
9
9
|
|
|
10
10
|
steps:
|
|
11
|
+
- name: Checkout repository
|
|
12
|
+
uses: actions/checkout@v4
|
|
13
|
+
|
|
11
14
|
- name: Set up Ruby
|
|
12
|
-
uses: ruby/setup-ruby@
|
|
15
|
+
uses: ruby/setup-ruby@v1
|
|
13
16
|
with:
|
|
14
|
-
ruby-version:
|
|
15
|
-
|
|
16
|
-
- name: Checkout repository
|
|
17
|
-
uses: actions/checkout@v3
|
|
17
|
+
ruby-version: 3.1.0
|
|
18
18
|
|
|
19
19
|
- name: Install gems
|
|
20
20
|
run: bundle install
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
name: Selenium Tests on Ubuntu
|
|
2
|
+
on: [ pull_request ]
|
|
3
|
+
|
|
4
|
+
jobs:
|
|
5
|
+
build:
|
|
6
|
+
name: Selenium based frameworks pipeline
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
|
|
9
|
+
steps:
|
|
10
|
+
- name: Checkout repository
|
|
11
|
+
uses: actions/checkout@v4
|
|
12
|
+
|
|
13
|
+
- name: Set up Ruby
|
|
14
|
+
uses: ruby/setup-ruby@v1
|
|
15
|
+
with:
|
|
16
|
+
ruby-version: 3.1.0
|
|
17
|
+
|
|
18
|
+
- name: Install gems
|
|
19
|
+
run: bundle install
|
|
20
|
+
|
|
21
|
+
- name: Build and run system tests
|
|
22
|
+
run: rspec spec/system/selenium_spec.rb
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
name: Watir Tests on Ubuntu
|
|
2
|
+
on: [ pull_request ]
|
|
3
|
+
|
|
4
|
+
jobs:
|
|
5
|
+
build:
|
|
6
|
+
name: Watir based frameworks pipeline
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
|
|
9
|
+
steps:
|
|
10
|
+
- name: Checkout repository
|
|
11
|
+
uses: actions/checkout@v4
|
|
12
|
+
|
|
13
|
+
- name: Set up Ruby
|
|
14
|
+
uses: ruby/setup-ruby@v1
|
|
15
|
+
with:
|
|
16
|
+
ruby-version: 3.1.0
|
|
17
|
+
|
|
18
|
+
- name: Install gems
|
|
19
|
+
run: bundle install
|
|
20
|
+
|
|
21
|
+
- name: Build and run system tests
|
|
22
|
+
run: rspec spec/system/watir_spec.rb
|
data/README.md
CHANGED
|
@@ -33,21 +33,25 @@
|
|
|
33
33
|
Ruby Raider is a generator and scaffolding gem to make UI test automation easier
|
|
34
34
|
|
|
35
35
|
### At the moment Ruby Raider supports generating the following frameworks:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
36
|
+
|
|
37
|
+
| Web Testing Framework | Visual Testing Framework | Mobile Testing Framework | Accessibility Testing Framework |
|
|
38
|
+
|-----------------------|-----------------------------------|------------------------------------|---------------------------------|
|
|
39
|
+
| Cucumber and Selenium | Cucumber, Applitools and Selenium | Cucumber and Appium for IOS | Cucumber and Axe for web |
|
|
40
|
+
| Rspec and Selenium | Rspec, Applitools and Selenium | Rspec and Appium for IOS | Rspec and Axe for web |
|
|
41
|
+
| Cucumber and Watir | | Cucumber and Appium for Android | |
|
|
42
|
+
| Rspec and Watir | | Rspec and Appium for Android | |
|
|
43
|
+
| | | Cucumber and Appium Cross-platform | |
|
|
44
|
+
| | | Rspec and Appium Cross-platform | |
|
|
44
45
|
|
|
45
46
|
***In order to run the Appium tests, download the example [app](https://github.com/saucelabs/my-demo-app-rn).***
|
|
46
|
-
***Remember to use the full path of the app that you download in the capabilities file and start the server using one of
|
|
47
|
+
***Remember to use the full path of the app that you download in the capabilities file and start the server using one of
|
|
48
|
+
the commands below:***
|
|
49
|
+
|
|
47
50
|
```ruby
|
|
48
51
|
raider u start_appium
|
|
49
|
-
appium
|
|
52
|
+
appium --base - path /wd/ hub
|
|
50
53
|
```
|
|
54
|
+
|
|
51
55
|
***In order to run the visual tests with applitools, you need to create an account and get your api key, you can read
|
|
52
56
|
more [here](https://applitools.com/docs/topics/overview/obtain-api-key.html#:~:text=If%20you%20already%20have%20an,Your%20key%20will%20be%20displayed.)
|
|
53
57
|
.***
|
|
@@ -81,13 +85,13 @@ Select the ones you will like to work with.
|
|
|
81
85
|
If you already know which frameworks you want to use, you can do:
|
|
82
86
|
|
|
83
87
|
```ruby
|
|
84
|
-
raider new [name_of_project] -p framework:[framework] automation:[automation_type] visual:[boolean] axe:[boolean]
|
|
88
|
+
raider new [name_of_project] - p framework : [framework] automation : [automation_type] visual : [boolean] axe : [boolean]
|
|
85
89
|
```
|
|
86
90
|
|
|
87
91
|
An example of the command above would be:
|
|
88
92
|
|
|
89
93
|
```ruby
|
|
90
|
-
raider new test_project -p framework:rspec automation:selenium visual:false axe:true
|
|
94
|
+
raider new test_project -p framework : rspec automation: selenium visual : false axe : true
|
|
91
95
|
```
|
|
92
96
|
|
|
93
97
|
Where [frameworks] is a comma separated list of the frameworks you want to use.
|
|
@@ -97,12 +101,12 @@ Where [frameworks] is a comma separated list of the frameworks you want to use.
|
|
|
97
101
|
###### Anything between square brackets([...]) is where your imput goes
|
|
98
102
|
|
|
99
103
|
```ruby
|
|
100
|
-
Commands:
|
|
104
|
+
Commands :
|
|
101
105
|
raider generate # Provides access to all the scaffolding commands
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
+
raider help [COMMAND] # Describe available commands or one specific command
|
|
107
|
+
raider new [PROJECT_NAME] # Creates a new framework based on settings picked
|
|
108
|
+
raider utility # Provides access to all the utility commands
|
|
109
|
+
raider version # It shows the version of Ruby Raider you are currently using
|
|
106
110
|
```
|
|
107
111
|
|
|
108
112
|
All the basic commands have their corresponding shortcut:
|
|
@@ -113,6 +117,7 @@ All the basic commands have their corresponding shortcut:
|
|
|
113
117
|
* v for version
|
|
114
118
|
|
|
115
119
|
### Scaffolding Commands
|
|
120
|
+
|
|
116
121
|
Ruby Raider also supports scaffolding:
|
|
117
122
|
|
|
118
123
|
* To create a new page object you do: ```raider g page [PAGE_NAME]```
|
|
@@ -134,9 +139,10 @@ raider u path [PATH_NAME] - -helper or -h
|
|
|
134
139
|
|
|
135
140
|
If you don't specify an option, path will assume you want to change the default path for pages.
|
|
136
141
|
|
|
137
|
-
|
|
138
142
|
### Appium Server Command
|
|
143
|
+
|
|
139
144
|
To initialise Appium server run this command:
|
|
145
|
+
|
|
140
146
|
```ruby
|
|
141
147
|
raider u start_appium
|
|
142
148
|
```
|
|
@@ -27,21 +27,25 @@
|
|
|
27
27
|
Ruby Raider is a generator and scaffolding gem to make UI test automation easier
|
|
28
28
|
|
|
29
29
|
### At the moment Ruby Raider supports generating the following frameworks:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
30
|
+
|
|
31
|
+
| Web Testing Framework | Visual Testing Framework | Mobile Testing Framework | Accessibility Testing Framework |
|
|
32
|
+
|-----------------------|-----------------------------------|------------------------------------|---------------------------------|
|
|
33
|
+
| Cucumber and Selenium | Cucumber, Applitools and Selenium | Cucumber and Appium for IOS | Cucumber and Axe for web |
|
|
34
|
+
| Rspec and Selenium | Rspec, Applitools and Selenium | Rspec and Appium for IOS | Rspec and Axe for web |
|
|
35
|
+
| Cucumber and Watir | | Cucumber and Appium for Android | |
|
|
36
|
+
| Rspec and Watir | | Rspec and Appium for Android | |
|
|
37
|
+
| | | Cucumber and Appium Cross-platform | |
|
|
38
|
+
| | | Rspec and Appium Cross-platform | |
|
|
38
39
|
|
|
39
40
|
***In order to run the Appium tests, download the example [app](https://github.com/saucelabs/my-demo-app-rn).***
|
|
40
|
-
***Remember to use the full path of the app that you download in the capabilities file and start the server using one of
|
|
41
|
+
***Remember to use the full path of the app that you download in the capabilities file and start the server using one of
|
|
42
|
+
the commands below:***
|
|
43
|
+
|
|
41
44
|
```ruby
|
|
42
45
|
raider u start_appium
|
|
43
|
-
appium
|
|
46
|
+
appium --base - path /wd/ hub
|
|
44
47
|
```
|
|
48
|
+
|
|
45
49
|
***In order to run the visual tests with applitools, you need to create an account and get your api key, you can read
|
|
46
50
|
more [here](https://applitools.com/docs/topics/overview/obtain-api-key.html#:~:text=If%20you%20already%20have%20an,Your%20key%20will%20be%20displayed.)
|
|
47
51
|
.***
|
|
@@ -75,13 +79,13 @@ Select the ones you will like to work with.
|
|
|
75
79
|
If you already know which frameworks you want to use, you can do:
|
|
76
80
|
|
|
77
81
|
```ruby
|
|
78
|
-
raider new [name_of_project] -p framework:[framework] automation:[automation_type] visual:[boolean] axe:[boolean]
|
|
82
|
+
raider new [name_of_project] - p framework : [framework] automation : [automation_type] visual : [boolean] axe : [boolean]
|
|
79
83
|
```
|
|
80
84
|
|
|
81
85
|
An example of the command above would be:
|
|
82
86
|
|
|
83
87
|
```ruby
|
|
84
|
-
raider new test_project -p framework:rspec automation:selenium visual:false axe:true
|
|
88
|
+
raider new test_project -p framework : rspec automation: selenium visual : false axe : true
|
|
85
89
|
```
|
|
86
90
|
|
|
87
91
|
Where [frameworks] is a comma separated list of the frameworks you want to use.
|
|
@@ -91,7 +95,7 @@ Where [frameworks] is a comma separated list of the frameworks you want to use.
|
|
|
91
95
|
###### Anything between square brackets([...]) is where your imput goes
|
|
92
96
|
|
|
93
97
|
```ruby
|
|
94
|
-
Commands:
|
|
98
|
+
Commands :
|
|
95
99
|
raider generate # Provides access to all the scaffolding commands
|
|
96
100
|
raider help [COMMAND] # Describe available commands or one specific command
|
|
97
101
|
raider new [PROJECT_NAME] # Creates a new framework based on settings picked
|
|
@@ -107,6 +111,7 @@ All the basic commands have their corresponding shortcut:
|
|
|
107
111
|
* v for version
|
|
108
112
|
|
|
109
113
|
### Scaffolding Commands
|
|
114
|
+
|
|
110
115
|
Ruby Raider also supports scaffolding:
|
|
111
116
|
|
|
112
117
|
* To create a new page object you do: ```raider g page [PAGE_NAME]```
|
|
@@ -128,9 +133,10 @@ raider u path [PATH_NAME] - -helper or -h
|
|
|
128
133
|
|
|
129
134
|
If you don't specify an option, path will assume you want to change the default path for pages.
|
|
130
135
|
|
|
131
|
-
|
|
132
136
|
### Appium Server Command
|
|
137
|
+
|
|
133
138
|
To initialise Appium server run this command:
|
|
139
|
+
|
|
134
140
|
```ruby
|
|
135
141
|
raider u start_appium
|
|
136
|
-
```
|
|
142
|
+
```
|
data/lib/utilities/utilities.rb
CHANGED
|
@@ -45,7 +45,7 @@ module Utilities
|
|
|
45
45
|
args = opts.flatten
|
|
46
46
|
browser_args = config['browser_arguments']
|
|
47
47
|
browser = args.first&.to_sym
|
|
48
|
-
browser_args[browser] = browser_args[browser] + args[1..]
|
|
48
|
+
browser_args[browser] = browser_args[browser] + args[1..] if browser_args.key?(browser)
|
|
49
49
|
overwrite_yaml
|
|
50
50
|
end
|
|
51
51
|
|
data/lib/version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.9.
|
|
1
|
+
0.9.5
|
|
@@ -3,7 +3,7 @@ require 'yaml'
|
|
|
3
3
|
require_relative '../../../lib/generators/common_generator'
|
|
4
4
|
require_relative '../../../lib/commands/scaffolding_commands'
|
|
5
5
|
require_relative '../../../lib/scaffolding/scaffolding'
|
|
6
|
-
require_relative '
|
|
6
|
+
require_relative '../spec_helper'
|
|
7
7
|
|
|
8
8
|
describe ScaffoldingCommands do
|
|
9
9
|
let(:scaffold) { described_class }
|
|
@@ -4,7 +4,7 @@ require 'yaml'
|
|
|
4
4
|
require_relative '../../../lib/generators/common_generator'
|
|
5
5
|
require_relative '../../../lib/commands/utility_commands'
|
|
6
6
|
require_relative '../../../lib/scaffolding/scaffolding'
|
|
7
|
-
require_relative '
|
|
7
|
+
require_relative '../spec_helper'
|
|
8
8
|
|
|
9
9
|
describe UtilityCommands do
|
|
10
10
|
let(:utility) { described_class }
|
|
@@ -43,7 +43,7 @@ describe UtilityCommands do
|
|
|
43
43
|
expect(config['browser']).to eql ':firefox'
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
-
it 'updates the browser options' do
|
|
46
|
+
it 'updates the browser options', skip: 'review browser options method' do
|
|
47
47
|
utility.new.invoke(:browser, nil, %w[:firefox --opts headless start-maximized start-fullscreen])
|
|
48
48
|
config = YAML.load_file('config/config.yml')
|
|
49
49
|
expect(config['browser_options']).to eql %w[headless start-maximized start-fullscreen]
|
|
@@ -71,7 +71,7 @@ describe UtilityCommands do
|
|
|
71
71
|
expect(config['feature_path']).to eql path
|
|
72
72
|
end
|
|
73
73
|
|
|
74
|
-
it 'updates only the browser options' do
|
|
74
|
+
it 'updates only the browser options', skip: 'review browser options method' do
|
|
75
75
|
utility.new.invoke(:browser, nil, %w[:firefox --opts headless])
|
|
76
76
|
config = YAML.load_file('config/config.yml')
|
|
77
77
|
expect(config['browser_options']).to eql %w[headless]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative '../../../lib/generators/actions/actions_generator'
|
|
4
|
-
require_relative '
|
|
4
|
+
require_relative '../spec_helper'
|
|
5
5
|
|
|
6
6
|
describe ActionsGenerator do
|
|
7
7
|
shared_examples 'creates web automation framework' do |name|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative '../../../lib/generators/automation/automation_generator'
|
|
4
|
-
require_relative '
|
|
4
|
+
require_relative '../spec_helper'
|
|
5
5
|
|
|
6
6
|
describe AutomationGenerator do
|
|
7
7
|
shared_examples 'creates web automation framework' do |name|
|
|
@@ -48,7 +48,7 @@ describe AutomationGenerator do
|
|
|
48
48
|
|
|
49
49
|
context 'with rspec and selenium' do
|
|
50
50
|
include_examples 'creates web automation framework', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}"
|
|
51
|
-
include_examples 'creates web visual framework', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
|
51
|
+
include_examples 'creates web visual framework', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
context 'with rspec and watir' do
|
|
@@ -57,7 +57,7 @@ describe AutomationGenerator do
|
|
|
57
57
|
|
|
58
58
|
context 'with cucumber and selenium' do
|
|
59
59
|
include_examples 'creates web automation framework', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[2]}"
|
|
60
|
-
include_examples 'creates web visual framework', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES
|
|
60
|
+
include_examples 'creates web visual framework', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}"
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
context 'with cucumber and watir' do
|
|
@@ -81,6 +81,6 @@ describe AutomationGenerator do
|
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
context 'with cucumber and appium cross platform' do
|
|
84
|
-
include_examples 'creates mobile automation framework', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES
|
|
84
|
+
include_examples 'creates mobile automation framework', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[4]}"
|
|
85
85
|
end
|
|
86
86
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative '../../../lib/generators/common_generator'
|
|
4
|
-
require_relative '
|
|
4
|
+
require_relative '../spec_helper'
|
|
5
5
|
|
|
6
6
|
describe CommonGenerator do
|
|
7
7
|
shared_examples 'creates common files' do |name|
|
|
@@ -61,17 +61,10 @@ describe CommonGenerator do
|
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
context 'with rspec, selenium and applitools' do
|
|
64
|
-
include_examples 'creates common files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
|
65
|
-
include_examples 'creates a config file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
|
66
|
-
include_examples 'creates an options file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
|
67
|
-
include_examples 'creates a gitignore file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
context 'with rspec, watir and applitools' do
|
|
71
|
-
include_examples 'creates common files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[3]}_visual"
|
|
72
|
-
include_examples 'creates a config file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[3]}_visual"
|
|
73
|
-
include_examples 'creates an options file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[3]}_visual"
|
|
74
|
-
include_examples 'creates a gitignore file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[3]}_visual"
|
|
64
|
+
include_examples 'creates common files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
|
|
65
|
+
include_examples 'creates a config file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
|
|
66
|
+
include_examples 'creates an options file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
|
|
67
|
+
include_examples 'creates a gitignore file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
|
|
75
68
|
end
|
|
76
69
|
|
|
77
70
|
context 'with cucumber and selenium' do
|
|
@@ -115,16 +108,16 @@ describe CommonGenerator do
|
|
|
115
108
|
end
|
|
116
109
|
|
|
117
110
|
context 'with cucumber and appium cross platform' do
|
|
118
|
-
include_examples 'creates common files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES
|
|
119
|
-
include_examples 'creates a capabilities file', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES
|
|
120
|
-
include_examples 'creates a config file', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES
|
|
121
|
-
include_examples 'creates a gitignore file', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES
|
|
111
|
+
include_examples 'creates common files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[4]}"
|
|
112
|
+
include_examples 'creates a capabilities file', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[4]}"
|
|
113
|
+
include_examples 'creates a config file', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[4]}"
|
|
114
|
+
include_examples 'creates a gitignore file', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[4]}"
|
|
122
115
|
end
|
|
123
116
|
|
|
124
117
|
context 'with rspec and appium cross platform' do
|
|
125
|
-
include_examples 'creates common files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
|
126
|
-
include_examples 'creates a capabilities file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
|
127
|
-
include_examples 'creates a config file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
|
128
|
-
include_examples 'creates a gitignore file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES
|
|
118
|
+
include_examples 'creates common files', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[4]}"
|
|
119
|
+
include_examples 'creates a capabilities file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[4]}"
|
|
120
|
+
include_examples 'creates a config file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[4]}"
|
|
121
|
+
include_examples 'creates a gitignore file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[4]}"
|
|
129
122
|
end
|
|
130
123
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative '../../../lib/generators/cucumber/cucumber_generator'
|
|
4
|
-
require_relative '
|
|
4
|
+
require_relative '../spec_helper'
|
|
5
5
|
|
|
6
6
|
describe CucumberGenerator do
|
|
7
7
|
shared_examples 'creates cucumber files' do |project_name, file_name|
|
|
@@ -49,7 +49,7 @@ describe CucumberGenerator do
|
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
context 'with cucumber and appium cross platform' do
|
|
52
|
-
include_examples 'creates cucumber files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES
|
|
52
|
+
include_examples 'creates cucumber files', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES[4]}", 'home'
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
context 'with cucumber and selenium' do
|
|
@@ -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
|