rspec-retry 0.5.4 → 0.5.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +17 -1
- data/changelog.md +4 -0
- data/gemfiles/rspec_3.3.gemfile +1 -1
- data/gemfiles/rspec_3.3.gemfile.lock +7 -6
- data/gemfiles/rspec_3.4.gemfile +1 -1
- data/gemfiles/rspec_3.4.gemfile.lock +8 -7
- data/gemfiles/rspec_3.5.gemfile +1 -1
- data/gemfiles/rspec_3.5.gemfile.lock +8 -7
- data/gemfiles/rspec_3.6.gemfile +1 -1
- data/gemfiles/rspec_3.6.gemfile.lock +4 -3
- data/lib/rspec/retry.rb +8 -0
- data/lib/rspec/retry/version.rb +1 -1
- data/rspec-retry.gemspec +3 -5
- data/spec/lib/rspec/retry_spec.rb +48 -0
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dca64362c60cb3455ecec73b8f5fb760fefa9029
|
4
|
+
data.tar.gz: 5c991d6261c1feb4d65771d1e0ea81edf24be3d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0bf9d0ea831e5bb0eaf23d246bbe625e1697bc08a5c4628e03cc00a042e3d5c4e94d6c1efc9cc105dd3402bd6921031d2a8ccab60bb1750b235f89dc7085e83
|
7
|
+
data.tar.gz: a1760e15d92bd00682ae9ea9eea1993777c28f5c5a7d8f6c0ef90a09fb17eb70939f5e9fabeff17edbf533e9c85b94b6b680fb63716c34f93b5312ca257e718d
|
data/README.md
CHANGED
@@ -4,7 +4,13 @@ RSpec::Retry adds a ``:retry`` option for intermittently failing rspec examples.
|
|
4
4
|
If an example has the ``:retry`` option, rspec will retry the example the
|
5
5
|
specified number of times until the example succeeds.
|
6
6
|
|
7
|
-
|
7
|
+
### Compatibility
|
8
|
+
|
9
|
+
| Rspec Version | Rspec-Retry Version |
|
10
|
+
|---------------|---------------------|
|
11
|
+
| 3.3-3.6 | 0.5.5 |
|
12
|
+
| 3.2 | 0.4.6 |
|
13
|
+
| 2.14.8 | 0.4.4 |
|
8
14
|
|
9
15
|
## Installation
|
10
16
|
|
@@ -36,6 +42,14 @@ RSpec.configure do |config|
|
|
36
42
|
config.around :each, :js do |ex|
|
37
43
|
ex.run_with_retry retry: 3
|
38
44
|
end
|
45
|
+
|
46
|
+
# callback to be run between retries
|
47
|
+
config.retry_callback = proc do |ex|
|
48
|
+
# run some additional clean up task - can be filtered by example metadata
|
49
|
+
if ex.metadata[:js]
|
50
|
+
Capybara.reset!
|
51
|
+
end
|
52
|
+
end
|
39
53
|
end
|
40
54
|
```
|
41
55
|
|
@@ -67,6 +81,8 @@ You can call `ex.run_with_retry(opts)` on an individual example.
|
|
67
81
|
- __:clear_lets_on_failure__(default: *true*) Clear memoized values for ``let``s before retrying
|
68
82
|
- __:exceptions_to_hard_fail__(default: *[]*) List of exceptions that will trigger an immediate test failure without retry. Takes precedence over __:exceptions_to_retry__
|
69
83
|
- __:exceptions_to_retry__(default: *[]*) List of exceptions that will trigger a retry (when empty, all exceptions will)
|
84
|
+
- __:retry_callback__(default: *nil*) Callback function to be called between retries
|
85
|
+
|
70
86
|
|
71
87
|
## Environment Variables
|
72
88
|
- __RSPEC_RETRY_RETRY_COUNT__ can override the retry counts even if a retry count is set in an example or default_retry_count is set in a configuration.
|
data/changelog.md
CHANGED
data/gemfiles/rspec_3.3.gemfile
CHANGED
@@ -1,25 +1,25 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
rspec-retry (0.5.
|
4
|
+
rspec-retry (0.5.5)
|
5
5
|
rspec-core (> 3.3, < 3.7)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
appraisal (2.
|
10
|
+
appraisal (2.2.0)
|
11
11
|
bundler
|
12
12
|
rake
|
13
13
|
thor (>= 0.14.0)
|
14
14
|
byebug (9.0.6)
|
15
15
|
coderay (1.1.1)
|
16
|
-
diff-lcs (1.
|
16
|
+
diff-lcs (1.3)
|
17
17
|
method_source (0.8.2)
|
18
18
|
pry (0.10.4)
|
19
19
|
coderay (~> 1.1.0)
|
20
20
|
method_source (~> 0.8.1)
|
21
21
|
slop (~> 3.4)
|
22
|
-
pry-byebug (3.4.
|
22
|
+
pry-byebug (3.4.2)
|
23
23
|
byebug (~> 9.0)
|
24
24
|
pry (~> 0.10)
|
25
25
|
rake (11.3.0)
|
@@ -37,16 +37,17 @@ GEM
|
|
37
37
|
rspec-support (~> 3.3.0)
|
38
38
|
rspec-support (3.3.0)
|
39
39
|
slop (3.6.0)
|
40
|
-
thor (0.
|
40
|
+
thor (0.20.0)
|
41
41
|
|
42
42
|
PLATFORMS
|
43
43
|
ruby
|
44
44
|
|
45
45
|
DEPENDENCIES
|
46
46
|
appraisal
|
47
|
+
byebug (~> 9.0.6)
|
47
48
|
pry-byebug
|
48
49
|
rspec (~> 3.3.0)
|
49
50
|
rspec-retry!
|
50
51
|
|
51
52
|
BUNDLED WITH
|
52
|
-
1.
|
53
|
+
1.15.4
|
data/gemfiles/rspec_3.4.gemfile
CHANGED
@@ -1,28 +1,28 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
rspec-retry (0.5.
|
4
|
+
rspec-retry (0.5.5)
|
5
5
|
rspec-core (> 3.3, < 3.7)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
appraisal (2.
|
10
|
+
appraisal (2.2.0)
|
11
11
|
bundler
|
12
12
|
rake
|
13
13
|
thor (>= 0.14.0)
|
14
14
|
byebug (9.0.6)
|
15
15
|
coderay (1.1.1)
|
16
|
-
diff-lcs (1.
|
16
|
+
diff-lcs (1.3)
|
17
17
|
method_source (0.8.2)
|
18
18
|
pry (0.10.4)
|
19
19
|
coderay (~> 1.1.0)
|
20
20
|
method_source (~> 0.8.1)
|
21
21
|
slop (~> 3.4)
|
22
|
-
pry-byebug (3.4.
|
22
|
+
pry-byebug (3.4.2)
|
23
23
|
byebug (~> 9.0)
|
24
24
|
pry (~> 0.10)
|
25
|
-
rake (
|
25
|
+
rake (12.0.0)
|
26
26
|
rspec (3.4.0)
|
27
27
|
rspec-core (~> 3.4.0)
|
28
28
|
rspec-expectations (~> 3.4.0)
|
@@ -37,16 +37,17 @@ GEM
|
|
37
37
|
rspec-support (~> 3.4.0)
|
38
38
|
rspec-support (3.4.1)
|
39
39
|
slop (3.6.0)
|
40
|
-
thor (0.
|
40
|
+
thor (0.20.0)
|
41
41
|
|
42
42
|
PLATFORMS
|
43
43
|
ruby
|
44
44
|
|
45
45
|
DEPENDENCIES
|
46
46
|
appraisal
|
47
|
+
byebug (~> 9.0.6)
|
47
48
|
pry-byebug
|
48
49
|
rspec (~> 3.4.0)
|
49
50
|
rspec-retry!
|
50
51
|
|
51
52
|
BUNDLED WITH
|
52
|
-
1.
|
53
|
+
1.15.4
|
data/gemfiles/rspec_3.5.gemfile
CHANGED
@@ -1,28 +1,28 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
rspec-retry (0.5.
|
4
|
+
rspec-retry (0.5.5)
|
5
5
|
rspec-core (> 3.3, < 3.7)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
appraisal (2.
|
10
|
+
appraisal (2.2.0)
|
11
11
|
bundler
|
12
12
|
rake
|
13
13
|
thor (>= 0.14.0)
|
14
14
|
byebug (9.0.6)
|
15
15
|
coderay (1.1.1)
|
16
|
-
diff-lcs (1.
|
16
|
+
diff-lcs (1.3)
|
17
17
|
method_source (0.8.2)
|
18
18
|
pry (0.10.4)
|
19
19
|
coderay (~> 1.1.0)
|
20
20
|
method_source (~> 0.8.1)
|
21
21
|
slop (~> 3.4)
|
22
|
-
pry-byebug (3.4.
|
22
|
+
pry-byebug (3.4.2)
|
23
23
|
byebug (~> 9.0)
|
24
24
|
pry (~> 0.10)
|
25
|
-
rake (
|
25
|
+
rake (12.0.0)
|
26
26
|
rspec (3.5.0)
|
27
27
|
rspec-core (~> 3.5.0)
|
28
28
|
rspec-expectations (~> 3.5.0)
|
@@ -37,16 +37,17 @@ GEM
|
|
37
37
|
rspec-support (~> 3.5.0)
|
38
38
|
rspec-support (3.5.0)
|
39
39
|
slop (3.6.0)
|
40
|
-
thor (0.
|
40
|
+
thor (0.20.0)
|
41
41
|
|
42
42
|
PLATFORMS
|
43
43
|
ruby
|
44
44
|
|
45
45
|
DEPENDENCIES
|
46
46
|
appraisal
|
47
|
+
byebug (~> 9.0.6)
|
47
48
|
pry-byebug
|
48
49
|
rspec (~> 3.5.0)
|
49
50
|
rspec-retry!
|
50
51
|
|
51
52
|
BUNDLED WITH
|
52
|
-
1.
|
53
|
+
1.15.4
|
data/gemfiles/rspec_3.6.gemfile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
rspec-retry (0.5.
|
4
|
+
rspec-retry (0.5.5)
|
5
5
|
rspec-core (> 3.3, < 3.7)
|
6
6
|
|
7
7
|
GEM
|
@@ -37,16 +37,17 @@ GEM
|
|
37
37
|
rspec-support (~> 3.6.0)
|
38
38
|
rspec-support (3.6.0)
|
39
39
|
slop (3.6.0)
|
40
|
-
thor (0.
|
40
|
+
thor (0.20.0)
|
41
41
|
|
42
42
|
PLATFORMS
|
43
43
|
ruby
|
44
44
|
|
45
45
|
DEPENDENCIES
|
46
46
|
appraisal
|
47
|
+
byebug (~> 9.0.6)
|
47
48
|
pry-byebug
|
48
49
|
rspec (~> 3.6.0)
|
49
50
|
rspec-retry!
|
50
51
|
|
51
52
|
BUNDLED WITH
|
52
|
-
1.
|
53
|
+
1.15.4
|
data/lib/rspec/retry.rb
CHANGED
@@ -26,6 +26,9 @@ module RSpec
|
|
26
26
|
# If no list of exceptions is provided and 'retry' > 1, we always retry.
|
27
27
|
config.add_setting :exceptions_to_retry, :default => []
|
28
28
|
|
29
|
+
# Callback between retries
|
30
|
+
config.add_setting :retry_callback, :default => nil
|
31
|
+
|
29
32
|
config.around(:each) do |ex|
|
30
33
|
ex.run_with_retry
|
31
34
|
end
|
@@ -145,6 +148,11 @@ module RSpec
|
|
145
148
|
|
146
149
|
example.example_group_instance.clear_lets if clear_lets
|
147
150
|
|
151
|
+
# If the callback is defined, let's call it
|
152
|
+
if RSpec.configuration.retry_callback
|
153
|
+
example.example_group_instance.instance_exec(example, &RSpec.configuration.retry_callback)
|
154
|
+
end
|
155
|
+
|
148
156
|
sleep sleep_interval if sleep_interval.to_i > 0
|
149
157
|
end
|
150
158
|
end
|
data/lib/rspec/retry/version.rb
CHANGED
data/rspec-retry.gemspec
CHANGED
@@ -7,6 +7,7 @@ Gem::Specification.new do |gem|
|
|
7
7
|
gem.description = %q{retry intermittently failing rspec examples}
|
8
8
|
gem.summary = %q{retry intermittently failing rspec examples}
|
9
9
|
gem.homepage = "http://github.com/NoRedInk/rspec-retry"
|
10
|
+
gem.license = "MIT"
|
10
11
|
|
11
12
|
gem.files = `git ls-files`.split($\)
|
12
13
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -17,9 +18,6 @@ Gem::Specification.new do |gem|
|
|
17
18
|
gem.add_runtime_dependency(%{rspec-core}, '>3.3', '<3.7')
|
18
19
|
gem.add_development_dependency %q{appraisal}
|
19
20
|
gem.add_development_dependency %q{rspec}
|
20
|
-
|
21
|
-
|
22
|
-
else
|
23
|
-
gem.add_development_dependency %q{pry-byebug}
|
24
|
-
end
|
21
|
+
gem.add_development_dependency %q{byebug}, '~>9.0.6' # 9.1 deprecates ruby 2.1
|
22
|
+
gem.add_development_dependency %q{pry-byebug}
|
25
23
|
end
|
@@ -202,6 +202,54 @@ describe RSpec::Retry do
|
|
202
202
|
end
|
203
203
|
end
|
204
204
|
|
205
|
+
describe 'calling retry_callback between retries', retry: 2 do
|
206
|
+
before(:all) do
|
207
|
+
RSpec.configuration.retry_callback = proc do |example|
|
208
|
+
@retry_callback_called = true
|
209
|
+
@example = example
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
after(:all) do
|
214
|
+
RSpec.configuration.retry_callback = nil
|
215
|
+
end
|
216
|
+
|
217
|
+
context 'if failure' do
|
218
|
+
before(:all) do
|
219
|
+
@retry_callback_called = false
|
220
|
+
@example = nil
|
221
|
+
@retry_attempts = 0
|
222
|
+
end
|
223
|
+
|
224
|
+
it 'should call retry callback', with_some: 'metadata' do |example|
|
225
|
+
if @retry_attempts == 0
|
226
|
+
@retry_attempts += 1
|
227
|
+
expect(@retry_callback_called).to be(false)
|
228
|
+
expect(@example).to eq(nil)
|
229
|
+
raise "let's retry once!"
|
230
|
+
elsif @retry_attempts > 0
|
231
|
+
expect(@retry_callback_called).to be(true)
|
232
|
+
expect(@example).to eq(example)
|
233
|
+
expect(@example.metadata[:with_some]).to eq('metadata')
|
234
|
+
end
|
235
|
+
end
|
236
|
+
end
|
237
|
+
|
238
|
+
context 'does not call retry_callback if no errors' do
|
239
|
+
before(:all) do
|
240
|
+
@retry_callback_called = false
|
241
|
+
@example = nil
|
242
|
+
end
|
243
|
+
|
244
|
+
after do
|
245
|
+
expect(@retry_callback_called).to be(false)
|
246
|
+
expect(@example).to be_nil
|
247
|
+
end
|
248
|
+
|
249
|
+
it { true }
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
205
253
|
describe 'output in verbose mode' do
|
206
254
|
|
207
255
|
line_1 = __LINE__ + 8
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-retry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yusuke Mito
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-08-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec-core
|
@@ -59,6 +59,20 @@ dependencies:
|
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: byebug
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 9.0.6
|
69
|
+
type: :development
|
70
|
+
prerelease: false
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 9.0.6
|
62
76
|
- !ruby/object:Gem::Dependency
|
63
77
|
name: pry-byebug
|
64
78
|
requirement: !ruby/object:Gem::Requirement
|
@@ -105,7 +119,8 @@ files:
|
|
105
119
|
- spec/lib/rspec/retry_spec.rb
|
106
120
|
- spec/spec_helper.rb
|
107
121
|
homepage: http://github.com/NoRedInk/rspec-retry
|
108
|
-
licenses:
|
122
|
+
licenses:
|
123
|
+
- MIT
|
109
124
|
metadata: {}
|
110
125
|
post_install_message:
|
111
126
|
rdoc_options: []
|
@@ -123,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
138
|
version: '0'
|
124
139
|
requirements: []
|
125
140
|
rubyforge_project:
|
126
|
-
rubygems_version: 2.6.
|
141
|
+
rubygems_version: 2.6.11
|
127
142
|
signing_key:
|
128
143
|
specification_version: 4
|
129
144
|
summary: retry intermittently failing rspec examples
|