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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d8f98b7b75772a1d20015806b95e8194b357031dc4828181b0d3db2ed3bf9a65
4
- data.tar.gz: 6ef9b9c02c12d85fc2da88706c92051fc19fd3da4788613038771b4ecbdbe5b6
3
+ metadata.gz: 279c26bb0d8d1a27d95b0510587e6828e2164c84a334c41b84b57db98f04867c
4
+ data.tar.gz: c024426fe0bbb58b912ac6bf07a0867110dc340c4946d4e3eab499e25a38b2ce
5
5
  SHA512:
6
- metadata.gz: 85ab371da3692e9559efaff063b8403716c8f947b93d9504c65cd9ae7531c791c7545c82473661879b35a5896de664d103ca0d41cf526408a66dfc6e18d52700
7
- data.tar.gz: 417edbb4b68ab62d0eba0d8c6eea8e60ef6df077f168d2d2fafb7019cc7a50b5528c086256b3d3a03c01ccf20abcc0e6018c572cd019c99c964bb5205c5ab4fe
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@f20f1eae726df008313d2e0d78c5e602562a1bcf
15
+ uses: ruby/setup-ruby@v1
13
16
  with:
14
- ruby-version: head
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
- | Web Testing Framework | Visual Testing Framework | Mobile Testing Framework |
37
- |----------------------------|---------------------------------------------|-------------------------------------------|
38
- | Cucumber and Selenium | Cucumber, Applitools and Selenium | Cucumber and Appium for IOS |
39
- | Rspec and Selenium | Rspec, Applitools and Selenium | Rspec and Appium for IOS |
40
- | Cucumber and Watir | | Cucumber and Appium for Android |
41
- | Rspec and Watir | | Rspec and Appium for Android |
42
- | | | Cucumber and Appium Cross-platform |
43
- | | | Rspec and Appium Cross-platform |
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 the commands below:***
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 --base-path /wd/hub
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
- raider help [COMMAND] # Describe available commands or one specific command
103
- raider new [PROJECT_NAME] # Creates a new framework based on settings picked
104
- raider utility # Provides access to all the utility commands
105
- raider version # It shows the version of Ruby Raider you are currently using
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
- | Web Testing Framework | Visual Testing Framework | Mobile Testing Framework |
31
- |----------------------------|---------------------------------------------|-------------------------------------------|
32
- | Cucumber and Selenium | Cucumber, Applitools and Selenium | Cucumber and Appium for IOS |
33
- | Rspec and Selenium | Rspec, Applitools and Selenium | Rspec and Appium for IOS |
34
- | Cucumber and Watir | | Cucumber and Appium for Android |
35
- | Rspec and Watir | | Rspec and Appium for Android |
36
- | | | Cucumber and Appium Cross-platform |
37
- | | | Rspec and Appium Cross-platform |
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 the commands below:***
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 --base-path /wd/hub
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
+ ```
@@ -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.4
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 '../../spec_helper'
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 '../../spec_helper'
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 '../../spec_helper'
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 '../../spec_helper'
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[2]}_visual"
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[2]}_visual"
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.last}"
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 '../../spec_helper'
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[2]}_visual"
65
- include_examples 'creates a config file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}_visual"
66
- include_examples 'creates an options file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}_visual"
67
- include_examples 'creates a gitignore file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}_visual"
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.last}"
119
- include_examples 'creates a capabilities file', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}"
120
- include_examples 'creates a config file', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}"
121
- include_examples 'creates a gitignore file', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}"
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.last}"
126
- include_examples 'creates a capabilities file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
127
- include_examples 'creates a config file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
128
- include_examples 'creates a gitignore file', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
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 '../../spec_helper'
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.last}", 'home'
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 '../../spec_helper'
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 a browser helper file' do
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[2]}_visual"
63
- include_examples 'creates selenium helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}_visual"
64
- include_examples 'creates rspec helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES[2]}_visual"
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.last}"
105
- include_examples 'creates selenium helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
106
- include_examples 'creates rspec helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
107
- include_examples 'creates cross platform helpers', "#{FRAMEWORKS.last}_#{AUTOMATION_TYPES.last}"
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.last}"
112
- include_examples 'creates selenium helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}"
113
- include_examples 'creates cucumber helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}"
114
- include_examples 'creates cross platform helpers', "#{FRAMEWORKS.first}_#{AUTOMATION_TYPES.last}"
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 '../../spec_helper'
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.last}", 'pdp'
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}#{'_visual' if visual}",
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
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-22 00:00:00.000000000 Z
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/spec_helper.rb
244
- - spec/support/settings_helper.rb
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