quke 0.2.8 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.config.example.yml +32 -1
- data/README.md +7 -1
- data/lib/features/support/env.rb +5 -0
- data/lib/quke/configuration.rb +24 -1
- data/lib/quke/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27be44353121331dc3014432665279b4fe608e67
|
4
|
+
data.tar.gz: bc5a878ce04b08f922b07a9a7095850431c6c01f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 483988fb09729678369293055188026e51e7fb17579681a0a0cbe151b6199e0e985fd017f818796fe3f8e42bd24c976e8af9baf01043915ee5c48fe03c2197a8
|
7
|
+
data.tar.gz: e516dd83556b3a6c0b6da0f2bd4d02f254b766c1b4cf44cae7eab7de85bf69998cbafd9000b27c68c8bb175596ca0b531cbebd1cb860f084af06a9e1e6863e40
|
data/.config.example.yml
CHANGED
@@ -25,6 +25,37 @@ pause: 1
|
|
25
25
|
# a detailed response.
|
26
26
|
stop_on_error: 1
|
27
27
|
|
28
|
+
# Capybara will attempt to find an element for a period of time, rather than
|
29
|
+
# immediately failing because the element cannot be found. This defaults to 2
|
30
|
+
# seconds. However if the site you are working with is slow or features
|
31
|
+
# elements that take some time to load you can increase this default.
|
32
|
+
max_wait_time: 5
|
33
|
+
|
34
|
+
# Anything you place under the 'custom' node in the `.config.yml` file will be
|
35
|
+
# available within your steps and page objects by calling
|
36
|
+
# `Quke::Quke.config.custom`. So using the example below we could access its
|
37
|
+
# values in the following ways
|
38
|
+
#
|
39
|
+
# Quke::Quke.config.custom["default_org_name"] # = "Testy Ltd"
|
40
|
+
# Quke::Quke.config.custom["accounts"]["account2"]["username"] # = "john.doe@example.gov.uk"
|
41
|
+
# Quke::Quke.config.custom["urls"]["front_office"] # = "http://myservice.service.gov.uk"
|
42
|
+
#
|
43
|
+
# As long as what you add is valid YAML (check with a tool like
|
44
|
+
# http://www.yamllint.com/) Quke will be able to pick it up and make it
|
45
|
+
# available in your tests.
|
46
|
+
custom:
|
47
|
+
default_org_name: "Testy Ltd"
|
48
|
+
accounts:
|
49
|
+
account1:
|
50
|
+
username: jane.doe@example.gov.uk
|
51
|
+
password: Av3rystr*ngone
|
52
|
+
account2:
|
53
|
+
username: john.doe@example.gov.uk
|
54
|
+
password: An*th3rstrongone
|
55
|
+
urls:
|
56
|
+
front_office: "http://myservice.service.gov.uk"
|
57
|
+
back_office: "http://admin-myservice.service.gov.uk"
|
58
|
+
|
28
59
|
# If you are running Quke behind a proxy you can configure the proxy details
|
29
60
|
# here. You'll need either the hostname or IP of the proxy server (don't include
|
30
61
|
# the http:// bit) and the port number (typically 8080). Currently proxy
|
@@ -58,7 +89,7 @@ browserstack:
|
|
58
89
|
project: 'Adding browserstack support'
|
59
90
|
|
60
91
|
# Allows you to specify an identifier for the test run.
|
61
|
-
# If you intend to repeat a test this might not be that
|
92
|
+
# If you intend to repeat a test this might not be that applicable, but in the
|
62
93
|
# case of one off tests it might be useful
|
63
94
|
name: 'Testing google search'
|
64
95
|
|
data/README.md
CHANGED
@@ -66,7 +66,13 @@ Or install it yourself as
|
|
66
66
|
|
67
67
|
## Configuration
|
68
68
|
|
69
|
-
You can
|
69
|
+
You can configure Quke using a `.config.yml` file. What can be configured essentially falls into one of 3 groups.
|
70
|
+
|
71
|
+
- **Quke configuration** - things like which driver to use, whether to pause between steps, or if Quke should stop in the event of an error
|
72
|
+
- **Custom configuration** - add your own custom values using the `custom:` node
|
73
|
+
- **Browserstack configuration** - specify exactly how you want your Browserstack session to run, for example which browser and OS to test against, the project name, and your credentials.
|
74
|
+
|
75
|
+
See [.config.example.yml](.config.example.yml) for full details of the options you can specify in your `.config.yml`.
|
70
76
|
|
71
77
|
### Multiple configs
|
72
78
|
|
data/lib/features/support/env.rb
CHANGED
@@ -16,6 +16,11 @@ driver = driver_reg.register(Quke::Quke.config.driver)
|
|
16
16
|
Capybara.default_driver = driver
|
17
17
|
Capybara.javascript_driver = driver
|
18
18
|
|
19
|
+
# default_max_wait_time is the maximum time Capybara will wait for an element
|
20
|
+
# to appear. You may wish to override it if you are having to deal with a slow
|
21
|
+
# or unresponsive web site.
|
22
|
+
Capybara.default_max_wait_time = Quke::Quke.config.max_wait_time
|
23
|
+
|
19
24
|
# By default Capybara will try to boot a rack application automatically. This
|
20
25
|
# switches off Capybara's rack server as we are running against a remote
|
21
26
|
# application.
|
data/lib/quke/configuration.rb
CHANGED
@@ -92,6 +92,19 @@ module Quke #:nodoc:
|
|
92
92
|
YAML.load(@data['stop_on_error'])
|
93
93
|
end
|
94
94
|
|
95
|
+
# Return the value for +max_wait_time+
|
96
|
+
#
|
97
|
+
# +max_wait_time+ is the time Capybara will spend waiting for an element
|
98
|
+
# to appear. It's default is normally 2 seconds but you may want to increase
|
99
|
+
# this is you are having to deal with a site that is not performant or prone
|
100
|
+
# to delays.
|
101
|
+
#
|
102
|
+
# If the value is not set in config file, it will default to whatever is the
|
103
|
+
# current Capybara value for default_max_wait_time.
|
104
|
+
def max_wait_time
|
105
|
+
@data['max_wait_time']
|
106
|
+
end
|
107
|
+
|
95
108
|
# Return the hash of +browserstack+ options.
|
96
109
|
#
|
97
110
|
# If you select the browserstack driver, there are a number of options you
|
@@ -122,6 +135,10 @@ module Quke #:nodoc:
|
|
122
135
|
proxy['host'] == '' ? false : true
|
123
136
|
end
|
124
137
|
|
138
|
+
def custom
|
139
|
+
@data['custom']
|
140
|
+
end
|
141
|
+
|
125
142
|
# Override to_s to output the contents of Config as a readable string rather
|
126
143
|
# than the standard object output you get.
|
127
144
|
def to_s
|
@@ -138,16 +155,22 @@ module Quke #:nodoc:
|
|
138
155
|
end
|
139
156
|
|
140
157
|
# rubocop:disable Metrics/AbcSize
|
158
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
159
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
141
160
|
def default_data!(data)
|
142
161
|
data.merge(
|
143
162
|
'features_folder' => (data['features'] || 'features').downcase.strip,
|
144
163
|
'app_host' => (data['app_host'] || '').downcase.strip,
|
145
164
|
'driver' => (data['driver'] || 'phantomjs').downcase.strip,
|
146
165
|
'pause' => (data['pause'] || '0').to_s.downcase.strip.to_i,
|
147
|
-
'stop_on_error' => (data['stop_on_error'] || 'false').to_s.downcase.strip
|
166
|
+
'stop_on_error' => (data['stop_on_error'] || 'false').to_s.downcase.strip,
|
167
|
+
'max_wait_time' => (data['max_wait_time'] || Capybara.default_max_wait_time).to_s.downcase.strip.to_i,
|
168
|
+
'custom' => (data['custom'] || nil)
|
148
169
|
)
|
149
170
|
end
|
150
171
|
# rubocop:enable Metrics/AbcSize
|
172
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
173
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
151
174
|
|
152
175
|
# rubocop:disable Metrics/MethodLength
|
153
176
|
def browserstack_data(data)
|
data/lib/quke/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quke
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alan Cruikshanks
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber
|