howitzer 2.1.1 → 2.2.0
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 +5 -5
- data/.rubocop.yml +27 -18
- data/.travis.yml +4 -3
- data/CHANGELOG.md +15 -1
- data/README.md +6 -3
- data/Rakefile +1 -1
- data/features/cli_new.feature +12 -8
- data/features/cli_update.feature +14 -9
- data/features/step_definitions/common_steps.rb +3 -3
- data/generators/base_generator.rb +1 -1
- data/generators/config/config_generator.rb +2 -1
- data/generators/config/templates/boot.rb +1 -1
- data/generators/config/templates/capybara.rb +2 -1
- data/generators/config/templates/default.yml +22 -4
- data/generators/config/templates/drivers/appium.rb +25 -0
- data/generators/config/templates/drivers/headless_firefox.rb +23 -0
- data/generators/cucumber/templates/cuke_sniffer.rake +2 -2
- data/generators/cucumber/templates/env.rb +8 -0
- data/generators/prerequisites/templates/factory_bot.rb +1 -0
- data/generators/root/root_generator.rb +1 -1
- data/generators/root/templates/{.rubocop.yml → .rubocop.yml.erb} +34 -13
- data/generators/root/templates/Gemfile.erb +4 -0
- data/generators/rspec/templates/spec_helper.rb +1 -0
- data/generators/turnip/templates/spec_helper.rb +1 -0
- data/howitzer.gemspec +3 -3
- data/lib/howitzer.rb +40 -0
- data/lib/howitzer/cache.rb +19 -18
- data/lib/howitzer/capybara_helpers.rb +13 -5
- data/lib/howitzer/email.rb +1 -0
- data/lib/howitzer/mail_adapters/gmail.rb +3 -0
- data/lib/howitzer/mail_adapters/mailgun.rb +2 -0
- data/lib/howitzer/mail_adapters/mailtrap.rb +3 -0
- data/lib/howitzer/mailgun_api/connector.rb +1 -0
- data/lib/howitzer/meta.rb +11 -0
- data/lib/howitzer/meta/actions.rb +38 -0
- data/lib/howitzer/meta/element.rb +38 -0
- data/lib/howitzer/meta/entry.rb +62 -0
- data/lib/howitzer/meta/iframe.rb +41 -0
- data/lib/howitzer/meta/section.rb +30 -0
- data/lib/howitzer/version.rb +1 -1
- data/lib/howitzer/web/capybara_context_holder.rb +1 -0
- data/lib/howitzer/web/capybara_methods_proxy.rb +4 -1
- data/lib/howitzer/web/element_dsl.rb +1 -0
- data/lib/howitzer/web/iframe_dsl.rb +2 -0
- data/lib/howitzer/web/page.rb +10 -0
- data/lib/howitzer/web/page_dsl.rb +3 -0
- data/lib/howitzer/web/page_validator.rb +2 -0
- data/lib/howitzer/web/section.rb +8 -0
- data/lib/howitzer/web/section_dsl.rb +1 -0
- data/spec/support/shared_examples/capybara_context_holder.rb +1 -1
- data/spec/support/shared_examples/meta_highlight_xpath.rb +41 -0
- data/spec/unit/generators/config_generator_spec.rb +4 -2
- data/spec/unit/generators/root_generator_spec.rb +32 -21
- data/spec/unit/generators/templates/cucumber_spec.rb +97 -0
- data/spec/unit/generators/templates/rspec_spec.rb +88 -0
- data/spec/unit/generators/templates/turnip_spec.rb +98 -0
- data/spec/unit/lib/capybara_helpers_spec.rb +37 -4
- data/spec/unit/lib/howitzer_spec.rb +23 -0
- data/spec/unit/lib/meta/element_spec.rb +59 -0
- data/spec/unit/lib/meta/entry_spec.rb +77 -0
- data/spec/unit/lib/meta/iframe_spec.rb +66 -0
- data/spec/unit/lib/meta/section_spec.rb +43 -0
- data/spec/unit/lib/utils/string_extensions_spec.rb +1 -1
- data/spec/unit/lib/web/element_dsl_spec.rb +10 -1
- data/spec/unit/lib/web/page_spec.rb +7 -0
- data/spec/unit/lib/web/section_spec.rb +7 -0
- metadata +31 -15
- data/generators/config/templates/drivers/phantomjs.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 7364832d86f0134a208559b840387a50685f15458ca2e54a7cac8f9869fe2974
|
4
|
+
data.tar.gz: e761cd0524e173f0414ecd57ab2a9c1a99fba1325bb379fa9d56873aa74b6516
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 943c4121f3f8d1f9264a94819236543da59b7ad9aefb7f226b5d47049c5b34bf2ddc1bdb38b6ca10992ea3285fc738ddae774f95ff4ad3dd79bd437397ce7f69
|
7
|
+
data.tar.gz: de7ca6029f7e6eae2837a3fbbc799403cbff55ca33a6b4b4de05200ef10466477e76fcc416fdad94226919565f3d1574bc7129e23ad66f0a86335e5bcc716765
|
data/.rubocop.yml
CHANGED
@@ -5,43 +5,40 @@ AllCops:
|
|
5
5
|
TargetRubyVersion: 2.3
|
6
6
|
DisplayCopNames: true
|
7
7
|
|
8
|
-
LineLength:
|
9
|
-
Max: 120
|
10
|
-
|
11
8
|
Layout/CaseIndentation:
|
12
9
|
Enabled: false
|
13
10
|
|
14
|
-
|
11
|
+
Lint/AmbiguousBlockAssociation:
|
15
12
|
Enabled: false
|
16
13
|
|
17
14
|
Lint/AmbiguousRegexpLiteral:
|
18
15
|
Enabled: false
|
19
16
|
|
20
|
-
|
17
|
+
Metrics/BlockLength:
|
21
18
|
Enabled: false
|
22
19
|
|
23
|
-
|
24
|
-
|
20
|
+
Metrics/LineLength:
|
21
|
+
Max: 120
|
22
|
+
|
23
|
+
Metrics/MethodLength:
|
24
|
+
Max: 30
|
25
|
+
|
26
|
+
Metrics/ModuleLength:
|
27
|
+
Max: 150
|
25
28
|
|
26
29
|
Style/CaseEquality:
|
27
30
|
Enabled: false
|
28
31
|
|
29
|
-
Style/
|
32
|
+
Style/EmptyElse:
|
30
33
|
Enabled: false
|
31
34
|
|
32
|
-
|
33
|
-
Max: 30
|
34
|
-
|
35
|
-
Style/TrivialAccessors:
|
36
|
-
AllowDSLWriters: true
|
37
|
-
|
38
|
-
Style/FrozenStringLiteralComment:
|
35
|
+
Style/EvalWithLocation:
|
39
36
|
Enabled: false
|
40
37
|
|
41
|
-
|
42
|
-
|
38
|
+
Style/FormatStringToken:
|
39
|
+
Enabled: false
|
43
40
|
|
44
|
-
|
41
|
+
Style/FrozenStringLiteralComment:
|
45
42
|
Enabled: false
|
46
43
|
|
47
44
|
Style/MixinGrouping:
|
@@ -49,3 +46,15 @@ Style/MixinGrouping:
|
|
49
46
|
Exclude:
|
50
47
|
- '**/*_steps.rb'
|
51
48
|
- 'tmp/**'
|
49
|
+
|
50
|
+
Style/MixinUsage:
|
51
|
+
Enabled: false
|
52
|
+
|
53
|
+
Style/RescueStandardError:
|
54
|
+
Enabled: false
|
55
|
+
|
56
|
+
Style/TrivialAccessors:
|
57
|
+
AllowDSLWriters: true
|
58
|
+
|
59
|
+
Style/YodaCondition:
|
60
|
+
Enabled: false
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,23 @@
|
|
1
|
-
## [In git](https://github.com/strongqa/howitzer/compare/v2.
|
1
|
+
## [In git](https://github.com/strongqa/howitzer/compare/v2.2.0...master)
|
2
2
|
|
3
3
|
### New Features
|
4
4
|
|
5
5
|
### Bug-fixes
|
6
6
|
|
7
|
+
## [v2.2.0](https://github.com/strongqa/howitzer/compare/v2.1.1...v2.2.0)
|
8
|
+
|
9
|
+
### New Features
|
10
|
+
- [#293](https://github.com/strongqa/howitzer/issues/293) add support ordering for run tests
|
11
|
+
- [#276](https://github.com/strongqa/howitzer/issues/276) Add support Capybara v3
|
12
|
+
- [#280](https://github.com/strongqa/howitzer/issues/280) Add support Firefox Headless
|
13
|
+
- [#241](https://github.com/strongqa/howitzer/issues/241) meta interface added. Allows tracking elements,sections, iframes on the page.
|
14
|
+
- [#266](https://github.com/strongqa/howitzer/issues/266) ruby 2.2 no longer supported
|
15
|
+
- [#265](https://github.com/strongqa/howitzer/issues/265) Add Appium driver
|
16
|
+
### Bug-fixes
|
17
|
+
- [#286](https://github.com/strongqa/howitzer/issues/286) [Installation] generated rubocop.yml doesn't cover ruby sources
|
18
|
+
- [#274](https://github.com/strongqa/howitzer/issues/274) Stopped PhantomJS supporting
|
19
|
+
- [#282](https://github.com/strongqa/howitzer/issues/282) Multiple sessions don't work properly
|
20
|
+
|
7
21
|
## [v2.1.1](https://github.com/strongqa/howitzer/compare/v2.1.0...v2.1.1)
|
8
22
|
|
9
23
|
### New Features
|
data/README.md
CHANGED
@@ -12,7 +12,6 @@
|
|
12
12
|
<a href="https://gitter.im/strongqa/howitzer"><img src="https://badges.gitter.im/Join%20Chat.svg" /></a>
|
13
13
|
<a href="https://rubygems.org/gems/howitzer"><img src="http://img.shields.io/gem/v/howitzer.svg" /></a>
|
14
14
|
<a href="https://travis-ci.org/strongqa/howitzer"><img src="https://travis-ci.org/strongqa/howitzer.svg?branch=master" /></a>
|
15
|
-
<a href='https://gemnasium.com/strongqa/howitzer'><img src="https://gemnasium.com/strongqa/howitzer.svg" /></a>
|
16
15
|
<a href="https://codeclimate.com/github/strongqa/howitzer"><img src="https://codeclimate.com/github/strongqa/howitzer.png" /></a>
|
17
16
|
<a href='https://coveralls.io/github/strongqa/howitzer?branch=master'><img src='https://coveralls.io/repos/github/strongqa/howitzer/badge.svg?branch=master' alt='Coverage Status' /></a>
|
18
17
|
<a href="https://github.com/strongqa/howitzer/blob/master/LICENSE"><img src="http://img.shields.io/badge/license-MIT-blue.svg" /></a>
|
@@ -42,14 +41,16 @@ You can also find the Rdoc documentation on [Rubygems](https://rubygems.org/gems
|
|
42
41
|
|
43
42
|
## Requirements
|
44
43
|
* Supported OS: Mac OS X, Linux, Windows
|
45
|
-
* [Ruby](https://www.ruby-lang.org/en/downloads/) 2.
|
44
|
+
* [Ruby](https://www.ruby-lang.org/en/downloads/) 2.3+
|
46
45
|
* [DevKit](https://github.com/oneclick/rubyinstaller/wiki/Development-Kit#installation-instructions) (For **Windows** only)
|
47
|
-
* [PhantomJS](http://phantomjs.org/download.html) (For **
|
46
|
+
* [PhantomJS](http://phantomjs.org/download.html) (For **poltergeist** driver only)
|
48
47
|
* [ChromeDriver](https://sites.google.com/a/chromium.org/chromedriver/) (For **chrome** selenium browser, 2.29+ for headless mode)
|
49
48
|
* [GeckoDriver](https://github.com/mozilla/geckodriver/releases) (For **firefox** selenium browser)
|
50
49
|
* [SafariDriver](https://webkit.org/blog/6900/webdriver-support-in-safari-10/) (For **safari** selenium browser)
|
51
50
|
* [QT](https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit) (For **webkit** driver only)
|
52
51
|
* [Chrome](https://www.google.com/chrome/browser/desktop/index.html) v.59+ (For **headless chrome** support)
|
52
|
+
* [Firefox](https://www.mozilla.org/en-US/firefox/new/) v.56+ (For **headless firefox** support)
|
53
|
+
* [Android SDK](https://developer.android.com/studio/index.html) and [Appium](http://appium.io/getting-started.html) (For Appium driver)
|
53
54
|
## Setup
|
54
55
|
To install, type
|
55
56
|
|
@@ -134,6 +135,8 @@ Don't forget to review the difference, to see if there were any unexpected chang
|
|
134
135
|
Contributing
|
135
136
|
------------
|
136
137
|
|
138
|
+
[](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/0)[](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/1)[](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/2)[](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/3)[](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/4)[](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/5)[](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/6)[](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/7)
|
139
|
+
|
137
140
|
Please see [CONTRIBUTING.md](CONTRIBUTING.md).
|
138
141
|
|
139
142
|
howitzer was originally designed by Roman Parashchenko and is now maintained by StrongQA team. You can find list of contributors here [open source
|
data/Rakefile
CHANGED
@@ -28,7 +28,7 @@ namespace :yard do
|
|
28
28
|
doc.use_document_file = false
|
29
29
|
doc.use_yardopts_file = false
|
30
30
|
doc.generate = false
|
31
|
-
doc.run('--list-undoc')
|
31
|
+
doc.run('stats --list-undoc')
|
32
32
|
output = log.string
|
33
33
|
puts output
|
34
34
|
exit(1) unless output.include?('100.00% documented')
|
data/features/cli_new.feature
CHANGED
@@ -60,10 +60,11 @@ Feature: Howitzer CLI New Project Creation
|
|
60
60
|
Added 'config/custom.yml' file
|
61
61
|
Added 'config/capybara.rb' file
|
62
62
|
Added 'config/default.yml' file
|
63
|
+
Added 'config/drivers/appium.rb' file
|
63
64
|
Added 'config/drivers/browserstack.rb' file
|
64
65
|
Added 'config/drivers/crossbrowsertesting.rb' file
|
65
66
|
Added 'config/drivers/headless_chrome.rb' file
|
66
|
-
Added 'config/drivers/
|
67
|
+
Added 'config/drivers/headless_firefox.rb' file
|
67
68
|
Added 'config/drivers/poltergeist.rb' file
|
68
69
|
Added 'config/drivers/sauce.rb' file
|
69
70
|
Added 'config/drivers/selenium.rb' file
|
@@ -79,8 +80,8 @@ Feature: Howitzer CLI New Project Creation
|
|
79
80
|
Added '/emails/example_email.rb' file
|
80
81
|
* Root files generation ...
|
81
82
|
Added '.gitignore' file
|
82
|
-
Added '.rubocop.yml' file
|
83
83
|
Added 'Rakefile' file
|
84
|
+
Added template '.rubocop.yml.erb' with params '{:r=>true, :rspec=>true, :c=>false, :cucumber=>false, :t=>false, :turnip=>false}' to destination '.rubocop.yml'
|
84
85
|
Added template 'Gemfile.erb' with params '{:r=>true, :rspec=>true, :c=>false, :cucumber=>false, :t=>false, :turnip=>false}' to destination 'Gemfile'
|
85
86
|
* Pre-requisites integration to the framework ...
|
86
87
|
Added 'prerequisites/factory_bot.rb' file
|
@@ -131,10 +132,11 @@ Feature: Howitzer CLI New Project Creation
|
|
131
132
|
Added 'config/custom.yml' file
|
132
133
|
Added 'config/capybara.rb' file
|
133
134
|
Added 'config/default.yml' file
|
135
|
+
Added 'config/drivers/appium.rb' file
|
134
136
|
Added 'config/drivers/browserstack.rb' file
|
135
137
|
Added 'config/drivers/crossbrowsertesting.rb' file
|
136
138
|
Added 'config/drivers/headless_chrome.rb' file
|
137
|
-
Added 'config/drivers/
|
139
|
+
Added 'config/drivers/headless_firefox.rb' file
|
138
140
|
Added 'config/drivers/poltergeist.rb' file
|
139
141
|
Added 'config/drivers/sauce.rb' file
|
140
142
|
Added 'config/drivers/selenium.rb' file
|
@@ -150,8 +152,8 @@ Feature: Howitzer CLI New Project Creation
|
|
150
152
|
Added '/emails/example_email.rb' file
|
151
153
|
* Root files generation ...
|
152
154
|
Added '.gitignore' file
|
153
|
-
Added '.rubocop.yml' file
|
154
155
|
Added 'Rakefile' file
|
156
|
+
Added template '.rubocop.yml.erb' with params '{:c=>true, :cucumber=>true, :r=>false, :rspec=>false, :t=>false, :turnip=>false}' to destination '.rubocop.yml'
|
155
157
|
Added template 'Gemfile.erb' with params '{:c=>true, :cucumber=>true, :r=>false, :rspec=>false, :t=>false, :turnip=>false}' to destination 'Gemfile'
|
156
158
|
* Pre-requisites integration to the framework ...
|
157
159
|
Added 'prerequisites/factory_bot.rb' file
|
@@ -209,10 +211,11 @@ Feature: Howitzer CLI New Project Creation
|
|
209
211
|
Added 'config/custom.yml' file
|
210
212
|
Added 'config/capybara.rb' file
|
211
213
|
Added 'config/default.yml' file
|
214
|
+
Added 'config/drivers/appium.rb' file
|
212
215
|
Added 'config/drivers/browserstack.rb' file
|
213
216
|
Added 'config/drivers/crossbrowsertesting.rb' file
|
214
217
|
Added 'config/drivers/headless_chrome.rb' file
|
215
|
-
Added 'config/drivers/
|
218
|
+
Added 'config/drivers/headless_firefox.rb' file
|
216
219
|
Added 'config/drivers/poltergeist.rb' file
|
217
220
|
Added 'config/drivers/sauce.rb' file
|
218
221
|
Added 'config/drivers/selenium.rb' file
|
@@ -228,8 +231,8 @@ Feature: Howitzer CLI New Project Creation
|
|
228
231
|
Added '/emails/example_email.rb' file
|
229
232
|
* Root files generation ...
|
230
233
|
Added '.gitignore' file
|
231
|
-
Added '.rubocop.yml' file
|
232
234
|
Added 'Rakefile' file
|
235
|
+
Added template '.rubocop.yml.erb' with params '{:t=>true, :turnip=>true, :c=>false, :cucumber=>false, :r=>false, :rspec=>false}' to destination '.rubocop.yml'
|
233
236
|
Added template 'Gemfile.erb' with params '{:t=>true, :turnip=>true, :c=>false, :cucumber=>false, :r=>false, :rspec=>false}' to destination 'Gemfile'
|
234
237
|
* Pre-requisites integration to the framework ...
|
235
238
|
Added 'prerequisites/factory_bot.rb' file
|
@@ -329,10 +332,11 @@ Feature: Howitzer CLI New Project Creation
|
|
329
332
|
Added 'config/custom.yml' file
|
330
333
|
Added 'config/capybara.rb' file
|
331
334
|
Added 'config/default.yml' file
|
335
|
+
Added 'config/drivers/appium.rb' file
|
332
336
|
Added 'config/drivers/browserstack.rb' file
|
333
337
|
Added 'config/drivers/crossbrowsertesting.rb' file
|
334
338
|
Added 'config/drivers/headless_chrome.rb' file
|
335
|
-
Added 'config/drivers/
|
339
|
+
Added 'config/drivers/headless_firefox.rb' file
|
336
340
|
Added 'config/drivers/poltergeist.rb' file
|
337
341
|
Added 'config/drivers/sauce.rb' file
|
338
342
|
Added 'config/drivers/selenium.rb' file
|
@@ -348,8 +352,8 @@ Feature: Howitzer CLI New Project Creation
|
|
348
352
|
Added '/emails/example_email.rb' file
|
349
353
|
* Root files generation ...
|
350
354
|
Added '.gitignore' file
|
351
|
-
Added '.rubocop.yml' file
|
352
355
|
Added 'Rakefile' file
|
356
|
+
Added template '.rubocop.yml.erb' with params '{:r=>true, :rspec=>true, :c=>false, :cucumber=>false, :t=>false, :turnip=>false}' to destination '.rubocop.yml'
|
353
357
|
Added template 'Gemfile.erb' with params '{:r=>true, :rspec=>true, :c=>false, :cucumber=>false, :t=>false, :turnip=>false}' to destination 'Gemfile'
|
354
358
|
* Pre-requisites integration to the framework ...
|
355
359
|
Added 'prerequisites/factory_bot.rb' file
|
data/features/cli_update.feature
CHANGED
@@ -13,10 +13,11 @@ Feature: Howitzer CLI Update Existing Project
|
|
13
13
|
Identical 'config/custom.yml' file
|
14
14
|
Identical 'config/capybara.rb' file
|
15
15
|
Added 'config/default.yml' file
|
16
|
+
Identical 'config/drivers/appium.rb' file
|
16
17
|
Identical 'config/drivers/browserstack.rb' file
|
17
18
|
Identical 'config/drivers/crossbrowsertesting.rb' file
|
18
19
|
Identical 'config/drivers/headless_chrome.rb' file
|
19
|
-
Identical 'config/drivers/
|
20
|
+
Identical 'config/drivers/headless_firefox.rb' file
|
20
21
|
Identical 'config/drivers/poltergeist.rb' file
|
21
22
|
Identical 'config/drivers/sauce.rb' file
|
22
23
|
Identical 'config/drivers/selenium.rb' file
|
@@ -37,9 +38,9 @@ Feature: Howitzer CLI Update Existing Project
|
|
37
38
|
Identical 'prerequisites/models/user.rb' file
|
38
39
|
* Root files generation ...
|
39
40
|
Added '.gitignore' file
|
40
|
-
Added '.rubocop.yml' file
|
41
41
|
Conflict with 'Rakefile' file
|
42
42
|
Overwrite 'Rakefile' file? [Yn]: Forced 'Rakefile' file
|
43
|
+
Added template '.rubocop.yml.erb' with params '{:rspec=>true}' to destination '.rubocop.yml'
|
43
44
|
Conflict with 'Gemfile' template
|
44
45
|
Overwrite 'Gemfile' template? [Yn]: Skipped 'Gemfile' template
|
45
46
|
* RSpec integration to the framework ...
|
@@ -50,6 +51,7 @@ Feature: Howitzer CLI Update Existing Project
|
|
50
51
|
And the exit status should be 0
|
51
52
|
When I run `howitzer update` interactively
|
52
53
|
And I type "y"
|
54
|
+
And I type "y"
|
53
55
|
Then the output should contain:
|
54
56
|
"""
|
55
57
|
* Config files generation ...
|
@@ -57,10 +59,11 @@ Feature: Howitzer CLI Update Existing Project
|
|
57
59
|
Identical 'config/custom.yml' file
|
58
60
|
Identical 'config/capybara.rb' file
|
59
61
|
Identical 'config/default.yml' file
|
62
|
+
Identical 'config/drivers/appium.rb' file
|
60
63
|
Identical 'config/drivers/browserstack.rb' file
|
61
64
|
Identical 'config/drivers/crossbrowsertesting.rb' file
|
62
65
|
Identical 'config/drivers/headless_chrome.rb' file
|
63
|
-
Identical 'config/drivers/
|
66
|
+
Identical 'config/drivers/headless_firefox.rb' file
|
64
67
|
Identical 'config/drivers/poltergeist.rb' file
|
65
68
|
Identical 'config/drivers/sauce.rb' file
|
66
69
|
Identical 'config/drivers/selenium.rb' file
|
@@ -81,8 +84,9 @@ Feature: Howitzer CLI Update Existing Project
|
|
81
84
|
Identical 'prerequisites/models/user.rb' file
|
82
85
|
* Root files generation ...
|
83
86
|
Identical '.gitignore' file
|
84
|
-
Identical '.rubocop.yml' file
|
85
87
|
Identical 'Rakefile' file
|
88
|
+
Conflict with '.rubocop.yml' template
|
89
|
+
Overwrite '.rubocop.yml' template? [Yn]: Forced '.rubocop.yml' template
|
86
90
|
Conflict with 'Gemfile' template
|
87
91
|
Overwrite 'Gemfile' template? [Yn]: Forced 'Gemfile' template
|
88
92
|
* RSpec integration to the framework ...
|
@@ -105,10 +109,11 @@ Feature: Howitzer CLI Update Existing Project
|
|
105
109
|
Identical 'config/custom.yml' file
|
106
110
|
Identical 'config/capybara.rb' file
|
107
111
|
Added 'config/default.yml' file
|
112
|
+
Identical 'config/drivers/appium.rb' file
|
108
113
|
Identical 'config/drivers/browserstack.rb' file
|
109
114
|
Identical 'config/drivers/crossbrowsertesting.rb' file
|
110
115
|
Identical 'config/drivers/headless_chrome.rb' file
|
111
|
-
Identical 'config/drivers/
|
116
|
+
Identical 'config/drivers/headless_firefox.rb' file
|
112
117
|
Identical 'config/drivers/poltergeist.rb' file
|
113
118
|
Identical 'config/drivers/sauce.rb' file
|
114
119
|
Identical 'config/drivers/selenium.rb' file
|
@@ -129,9 +134,9 @@ Feature: Howitzer CLI Update Existing Project
|
|
129
134
|
Identical 'prerequisites/models/user.rb' file
|
130
135
|
* Root files generation ...
|
131
136
|
Added '.gitignore' file
|
132
|
-
Added '.rubocop.yml' file
|
133
137
|
Conflict with 'Rakefile' file
|
134
138
|
Overwrite 'Rakefile' file? [Yn]: Forced 'Rakefile' file
|
139
|
+
Added template '.rubocop.yml.erb' with params '{:cucumber=>true}' to destination '.rubocop.yml'
|
135
140
|
Conflict with 'Gemfile' template
|
136
141
|
Overwrite 'Gemfile' template? [Yn]: Skipped 'Gemfile' template
|
137
142
|
* Cucumber integration to the framework ...
|
@@ -155,10 +160,11 @@ Feature: Howitzer CLI Update Existing Project
|
|
155
160
|
Identical 'config/custom.yml' file
|
156
161
|
Identical 'config/capybara.rb' file
|
157
162
|
Identical 'config/default.yml' file
|
163
|
+
Identical 'config/drivers/appium.rb' file
|
158
164
|
Identical 'config/drivers/browserstack.rb' file
|
159
165
|
Identical 'config/drivers/crossbrowsertesting.rb' file
|
160
166
|
Identical 'config/drivers/headless_chrome.rb' file
|
161
|
-
Identical 'config/drivers/
|
167
|
+
Identical 'config/drivers/headless_firefox.rb' file
|
162
168
|
Identical 'config/drivers/poltergeist.rb' file
|
163
169
|
Identical 'config/drivers/sauce.rb' file
|
164
170
|
Identical 'config/drivers/selenium.rb' file
|
@@ -179,8 +185,8 @@ Feature: Howitzer CLI Update Existing Project
|
|
179
185
|
Identical 'prerequisites/models/user.rb' file
|
180
186
|
* Root files generation ...
|
181
187
|
Added '.gitignore' file
|
182
|
-
Added '.rubocop.yml' file
|
183
188
|
Identical 'Rakefile' file
|
189
|
+
Added template '.rubocop.yml.erb' with params '{:turnip=>true}' to destination '.rubocop.yml'
|
184
190
|
Conflict with 'Gemfile' template
|
185
191
|
Overwrite 'Gemfile' template? [Yn]: Forced 'Gemfile' template
|
186
192
|
* Turnip integration to the framework ...
|
@@ -209,7 +215,6 @@ Feature: Howitzer CLI Update Existing Project
|
|
209
215
|
|
210
216
|
SYNOPSIS
|
211
217
|
howitzer [global options] update
|
212
|
-
|
213
218
|
"""
|
214
219
|
And the exit status should be 0
|
215
220
|
Examples:
|
@@ -1,5 +1,5 @@
|
|
1
1
|
Given /^created old howitzer project based on rspec$/ do
|
2
|
-
|
2
|
+
run_command_and_stop 'howitzer new test_automation --rspec'
|
3
3
|
all_commands.shift
|
4
4
|
|
5
5
|
FileUtils.move(Dir.glob("#{expand_path('.')}/test_automation/*"), expand_path('.'))
|
@@ -10,7 +10,7 @@ Given /^created old howitzer project based on rspec$/ do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
Given /^created old howitzer project based on cucumber$/ do
|
13
|
-
|
13
|
+
run_command_and_stop 'howitzer new test_automation --cucumber'
|
14
14
|
all_commands.shift
|
15
15
|
|
16
16
|
FileUtils.move(Dir.glob("#{expand_path('.')}/test_automation/*"), expand_path('.'))
|
@@ -21,7 +21,7 @@ Given /^created old howitzer project based on cucumber$/ do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
Given /^created old howitzer project based on turnip$/ do
|
24
|
-
|
24
|
+
run_command_and_stop 'howitzer new test_automation --turnip'
|
25
25
|
all_commands.shift
|
26
26
|
|
27
27
|
FileUtils.move(Dir.glob("#{expand_path('.')}/test_automation/*"), expand_path('.'))
|
@@ -170,7 +170,7 @@ module Howitzer
|
|
170
170
|
when 'y'
|
171
171
|
FileUtils.cp(source, destination)
|
172
172
|
puts_info(" #{ColorizedString.new('Forced').light_green} '#{data[:destination]}' file")
|
173
|
-
when 'n'
|
173
|
+
when 'n'
|
174
174
|
puts_info(" #{ColorizedString.new('Skipped').light_black} '#{data[:destination]}' file")
|
175
175
|
else nil
|
176
176
|
end
|
@@ -9,10 +9,11 @@ module Howitzer
|
|
9
9
|
{ source: 'custom.yml', destination: 'config/custom.yml' },
|
10
10
|
{ source: 'capybara.rb', destination: 'config/capybara.rb' },
|
11
11
|
{ source: 'default.yml', destination: 'config/default.yml' },
|
12
|
+
{ source: 'drivers/appium.rb', destination: 'config/drivers/appium.rb' },
|
12
13
|
{ source: 'drivers/browserstack.rb', destination: 'config/drivers/browserstack.rb' },
|
13
14
|
{ source: 'drivers/crossbrowsertesting.rb', destination: 'config/drivers/crossbrowsertesting.rb' },
|
14
15
|
{ source: 'drivers/headless_chrome.rb', destination: 'config/drivers/headless_chrome.rb' },
|
15
|
-
{ source: 'drivers/
|
16
|
+
{ source: 'drivers/headless_firefox.rb', destination: 'config/drivers/headless_firefox.rb' },
|
16
17
|
{ source: 'drivers/poltergeist.rb', destination: 'config/drivers/poltergeist.rb' },
|
17
18
|
{ source: 'drivers/sauce.rb', destination: 'config/drivers/sauce.rb' },
|
18
19
|
{ source: 'drivers/selenium.rb', destination: 'config/drivers/selenium.rb' },
|
@@ -1,14 +1,15 @@
|
|
1
1
|
HOWITZER_KNOWN_DRIVERS = %i[
|
2
|
+
appium
|
2
3
|
selenium
|
3
4
|
selenium_grid
|
4
5
|
webkit
|
5
6
|
poltergeist
|
6
|
-
phantomjs
|
7
7
|
sauce
|
8
8
|
testingbot
|
9
9
|
browserstack
|
10
10
|
crossbrowsertesting
|
11
11
|
headless_chrome
|
12
|
+
headless_firefox
|
12
13
|
].freeze
|
13
14
|
|
14
15
|
unless HOWITZER_KNOWN_DRIVERS.include?(Howitzer.driver.to_s.to_sym)
|
@@ -21,9 +21,14 @@
|
|
21
21
|
page_load_idle_timeout: 20
|
22
22
|
maximized_window: true # Specify maximized browser window size
|
23
23
|
|
24
|
-
#
|
25
|
-
#
|
26
|
-
|
24
|
+
# Run scenarios in the order they were 'defined' (default).
|
25
|
+
# 'random' - shuffle scenarios before running.
|
26
|
+
# Specify SEED to reproduce the shuffling from a previous run. e.g. 'random:5738'
|
27
|
+
test_order: defined
|
28
|
+
|
29
|
+
# Specify one of the following drivers: selenium, selenium_grid, webkit, poltergeist, sauce,
|
30
|
+
# testingbot, browserstack, crossbrowsertesting, headless_chrome, headless_firefox, appium
|
31
|
+
driver: poltergeist
|
27
32
|
|
28
33
|
# -Selenium-
|
29
34
|
# specify one of next browsers: iexplore (ie), firefox (ff), chrome, safari
|
@@ -33,14 +38,27 @@
|
|
33
38
|
# List of available flags (http://peter.sh/experiments/chromium-command-line-switches/)
|
34
39
|
headless_chrome_flags: "window-size=1920x1080, disable-gpu"
|
35
40
|
|
41
|
+
# -Headless Firefox-
|
42
|
+
# For use custom screen size "maximized_window" should be false
|
43
|
+
headless_firefox_flags: "-height=1920, -width=1080"
|
44
|
+
|
36
45
|
# -Selenium Grid-
|
37
46
|
selenium_hub_url: "http://example.com:4444/wd/hub"
|
38
47
|
|
39
|
-
# -
|
48
|
+
# -Poltergeist-
|
40
49
|
# specify settings for poltergeist
|
41
50
|
phantom_ignore_js_errors: false
|
42
51
|
phantom_ignore_ssl_errors: true
|
43
52
|
|
53
|
+
# -Appium- (https://appium.io/docs/en/writing-running-appium/caps/)
|
54
|
+
appium_url: "http://localhost:80/wd/hub"
|
55
|
+
appium_platform_name: "iOS"
|
56
|
+
appium_platform_version: "10.0"
|
57
|
+
appium_browser_name: "Safari"
|
58
|
+
appium_device_name: "iPad Air 2 Simulator"
|
59
|
+
appium_device_orientation: "portrait"
|
60
|
+
|
61
|
+
|
44
62
|
rspec_wait_timeout: 10
|
45
63
|
|
46
64
|
###########################################################
|