rspec-rerun 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|