rspec-rerun 1.0.0 → 1.1.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 +4 -4
- data/lib/rspec-rerun/formatter.rb +15 -8
- data/lib/rspec-rerun/tasks.rb +21 -13
- data/lib/rspec-rerun/version.rb +1 -1
- metadata +4 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53e04e1642d972254feb945956ce9ae830594e5f
|
4
|
+
data.tar.gz: f266c90c4b476c4ac2edbaddeff61cc7a4a28c3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7c09c26aa3c62a1c471c3fe29e581133745dbb003f31c404b04fcbb563023d57bdedd80ca1da35b16ac040e7d49dc85ad9c2396bb67a8e202023f8fcbcf7732
|
7
|
+
data.tar.gz: b26726a8047f0d9846c547ad841a2b3000e415fd17ae78a987e75d6b31204ee3656c99b88f635ef16b8fa1202ba86ab546077c14c88613b3990a8ceed160074c
|
@@ -1,18 +1,21 @@
|
|
1
1
|
require 'rspec/core'
|
2
|
-
require 'rspec/
|
3
|
-
require 'rspec/core/formatters/base_formatter'
|
2
|
+
require 'rspec/core/formatters'
|
4
3
|
|
5
4
|
module RSpec
|
6
5
|
module Rerun
|
7
|
-
class Formatter
|
6
|
+
class Formatter
|
7
|
+
::RSpec::Core::Formatters.register self, :dump_failures
|
8
|
+
|
8
9
|
FILENAME = 'rspec.failures'
|
9
10
|
|
10
|
-
def
|
11
|
-
|
11
|
+
def initialize(_); end
|
12
|
+
|
13
|
+
def dump_failures(notification)
|
14
|
+
if notification.failed_examples.empty?
|
12
15
|
clean!
|
13
16
|
else
|
14
|
-
rerun_commands = failed_examples.map { |e| retry_command(e) }
|
15
|
-
File.write(FILENAME, rerun_commands.join(
|
17
|
+
rerun_commands = notification.failed_examples.map { |e| retry_command(e) }
|
18
|
+
File.write(FILENAME, rerun_commands.join("\n"))
|
16
19
|
end
|
17
20
|
end
|
18
21
|
|
@@ -23,7 +26,11 @@ module RSpec
|
|
23
26
|
private
|
24
27
|
|
25
28
|
def retry_command(example)
|
26
|
-
example.
|
29
|
+
if example.respond_to?(:rerun_argument)
|
30
|
+
example.rerun_argument
|
31
|
+
else
|
32
|
+
example.location.gsub("\"", "\\\"")
|
33
|
+
end
|
27
34
|
end
|
28
35
|
end
|
29
36
|
end
|
data/lib/rspec-rerun/tasks.rb
CHANGED
@@ -31,10 +31,10 @@ module RSpec
|
|
31
31
|
|
32
32
|
# Handle if opts is just a retry_count integer
|
33
33
|
options = if options.is_a? Hash
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
34
|
+
options
|
35
|
+
else
|
36
|
+
{ retry_count: options }
|
37
|
+
end
|
38
38
|
|
39
39
|
# Parse environment variables
|
40
40
|
options[:pattern] ||= ENV['RSPEC_RERUN_PATTERN'] if ENV['RSPEC_RERUN_PATTERN']
|
@@ -49,25 +49,32 @@ module RSpec
|
|
49
49
|
File.read(RSpec::Rerun::Formatter::FILENAME).split
|
50
50
|
end
|
51
51
|
|
52
|
+
def failed_count
|
53
|
+
failing_specs.count
|
54
|
+
end
|
55
|
+
|
52
56
|
def failure_message
|
53
|
-
failed_count = failing_specs.count
|
54
57
|
"[#{Time.now}] Failed, #{failed_count} failure#{failed_count == 1 ? '' : 's'}"
|
55
58
|
end
|
56
59
|
|
57
|
-
def
|
60
|
+
def run(args)
|
58
61
|
Rake::Task['rspec-rerun:run'].execute(args)
|
59
62
|
end
|
60
63
|
|
64
|
+
def rerun(args)
|
65
|
+
Rake::Task['rspec-rerun:rerun'].execute(args)
|
66
|
+
end
|
67
|
+
|
61
68
|
private
|
62
69
|
|
63
70
|
def dot_rspec_options
|
64
71
|
dot_rspec_file = ['.rspec', File.expand_path('~/.rspec')].detect { |f| File.exist?(f) }
|
65
72
|
options = if dot_rspec_file
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
73
|
+
file_contents = File.read(dot_rspec_file)
|
74
|
+
file_contents.split(/\n+/).map(&:shellsplit).flatten
|
75
|
+
else
|
76
|
+
[]
|
77
|
+
end
|
71
78
|
options.concat ['--format', 'progress'] unless options.include?('--format')
|
72
79
|
options
|
73
80
|
end
|
@@ -88,7 +95,7 @@ desc 'Re-run failed RSpec examples.'
|
|
88
95
|
RSpec::Core::RakeTask.new('rspec-rerun:rerun') do |t, args|
|
89
96
|
failing_specs = RSpec::Rerun::Tasks.failing_specs
|
90
97
|
|
91
|
-
t.pattern =
|
98
|
+
t.pattern = 'deliberately-left-blank'
|
92
99
|
t.fail_on_error = false
|
93
100
|
t.verbose = false if args[:verbose] == false
|
94
101
|
t.rspec_opts = RSpec::Rerun::Tasks.rspec_options(args, failing_specs.join(' '))
|
@@ -101,7 +108,7 @@ task 'rspec-rerun:spec' do |_t, args|
|
|
101
108
|
|
102
109
|
fail 'retry count must be >= 1' if retry_count <= 0
|
103
110
|
FileUtils.rm_f RSpec::Rerun::Formatter::FILENAME
|
104
|
-
RSpec::Rerun::Tasks.
|
111
|
+
RSpec::Rerun::Tasks.run(parsed_args)
|
105
112
|
|
106
113
|
until $?.success? || retry_count == 0
|
107
114
|
retry_count -= 1
|
@@ -113,6 +120,7 @@ task 'rspec-rerun:spec' do |_t, args|
|
|
113
120
|
|
114
121
|
unless $?.success?
|
115
122
|
$stderr.puts RSpec::Rerun::Tasks.failure_message
|
123
|
+
failed_count = RSpec::Rerun::Tasks.failed_count
|
116
124
|
fail "#{failed_count} failure#{failed_count == 1 ? '' : 's'}"
|
117
125
|
end
|
118
126
|
end
|
data/lib/rspec-rerun/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-rerun
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Doubrovkine
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -24,20 +24,6 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rspec-legacy_formatters
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: rake
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +58,14 @@ dependencies:
|
|
72
58
|
requirements:
|
73
59
|
- - '='
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
61
|
+
version: 0.31.0
|
76
62
|
type: :development
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
66
|
- - '='
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
68
|
+
version: 0.31.0
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: bump
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|