howitzer 2.1.1 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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/images/0)](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/0)[![](https://sourcerer.io/fame/romikoops/strongqa/howitzer/images/1)](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/1)[![](https://sourcerer.io/fame/romikoops/strongqa/howitzer/images/2)](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/2)[![](https://sourcerer.io/fame/romikoops/strongqa/howitzer/images/3)](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/3)[![](https://sourcerer.io/fame/romikoops/strongqa/howitzer/images/4)](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/4)[![](https://sourcerer.io/fame/romikoops/strongqa/howitzer/images/5)](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/5)[![](https://sourcerer.io/fame/romikoops/strongqa/howitzer/images/6)](https://sourcerer.io/fame/romikoops/strongqa/howitzer/links/6)[![](https://sourcerer.io/fame/romikoops/strongqa/howitzer/images/7)](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
|
###########################################################
|