rspec-retry 0.1.0 → 0.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.
data/README.md CHANGED
@@ -41,6 +41,12 @@ end
41
41
  # RSpec::Retry: 3rd try ./spec/lib/random_spec.rb:49
42
42
  ```
43
43
 
44
+ ## Configuration
45
+
46
+ - __:verbose_retry__(default: *false*) Print retry status
47
+ - __:default_retry_count__(default: *1*) If retry count is not set in example, this value is used by default
48
+ - __:clear_lets_on_failure__(default: *true*) Clear memoized value for ``let`` before retrying
49
+
44
50
  ## Contributing
45
51
 
46
52
  1. Fork it
@@ -7,8 +7,14 @@ module RSpec
7
7
  RSpec.configure do |config|
8
8
  config.add_setting :verbose_retry, :default => false
9
9
  config.add_setting :default_retry_count, :default => 1
10
+ config.add_setting :clear_lets_on_failure, :default => true
11
+
10
12
  config.around(:each) do |example|
11
13
  retry_count = example.metadata[:retry] || RSpec.configuration.default_retry_count
14
+
15
+ clear_lets = example.metadata[:clear_lets_on_failure]
16
+ clear_lets = RSpec.configuration.clear_lets_on_failure if clear_lets.nil?
17
+
12
18
  retry_count.times do |i|
13
19
  if RSpec.configuration.verbose_retry?
14
20
  if i > 0
@@ -19,7 +25,10 @@ module RSpec
19
25
  end
20
26
  @example.clear_exception
21
27
  example.run
28
+
22
29
  break if @example.exception.nil?
30
+
31
+ self.clear_lets if clear_lets
23
32
  end
24
33
  end
25
34
  end
@@ -1,5 +1,5 @@
1
1
  module RSpec
2
2
  class Retry
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -7,3 +7,14 @@ module RSpec
7
7
  end
8
8
  end
9
9
  end
10
+
11
+ module RSpec
12
+ module Core
13
+ class ExampleGroup
14
+ def clear_lets
15
+ @__memoized = {}
16
+ end
17
+ end
18
+ end
19
+ end
20
+
@@ -50,4 +50,24 @@ describe RSpec::Retry do
50
50
  rand(3).should == 1
51
51
  end
52
52
  end
53
+
54
+ describe 'clearing lets' do
55
+ before(:all) do
56
+ @control = true
57
+ end
58
+
59
+ let(:let_based_on_control) { @control }
60
+
61
+ after do
62
+ @control = false
63
+ end
64
+
65
+ it 'should clear the let when the test fails so it can be reset', :retry => 2 do
66
+ let_based_on_control.should == false
67
+ end
68
+
69
+ it 'should not clear the let when the test fails', :retry => 2, :clear_lets_on_failure => false do
70
+ let_based_on_control.should == !@control
71
+ end
72
+ end
53
73
  end
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.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-03 00:00:00.000000000 Z
12
+ date: 2013-02-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70335231618040 !ruby/object:Gem::Requirement
16
+ requirement: &70095924091300 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70335231618040
24
+ version_requirements: *70095924091300
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: guard-rspec
27
- requirement: &70335231617400 !ruby/object:Gem::Requirement
27
+ requirement: &70095924090880 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70335231617400
35
+ version_requirements: *70095924090880
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: pry-debugger
38
- requirement: &70335231616780 !ruby/object:Gem::Requirement
38
+ requirement: &70095924090460 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70335231616780
46
+ version_requirements: *70095924090460
47
47
  description: retry randomly failing example
48
48
  email:
49
49
  - y310.1984@gmail.com