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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 65364fcd0d558bc48418792fc46838cb31773447
4
- data.tar.gz: 33af133659889ea4cca51bcc33da1de241269046
3
+ metadata.gz: 53e04e1642d972254feb945956ce9ae830594e5f
4
+ data.tar.gz: f266c90c4b476c4ac2edbaddeff61cc7a4a28c3e
5
5
  SHA512:
6
- metadata.gz: 98cafbb7c1a635cbd0a67f82088649021ae86aa05bea5eaa152e265597ec9e541a1e83b71784f077328504cfbf3cc202bcf6cc47b96117960033e588b31e3e31
7
- data.tar.gz: 5fff934cf2f8e821088f186c4ea8d14141196d4314062da2460b2956889ec0be62c7e021fb75b394beb063ab2fcfaab7ff5d070dfc470c220e15175d338d279f
6
+ metadata.gz: b7c09c26aa3c62a1c471c3fe29e581133745dbb003f31c404b04fcbb563023d57bdedd80ca1da35b16ac040e7d49dc85ad9c2396bb67a8e202023f8fcbcf7732
7
+ data.tar.gz: b26726a8047f0d9846c547ad841a2b3000e415fd17ae78a987e75d6b31204ee3656c99b88f635ef16b8fa1202ba86ab546077c14c88613b3990a8ceed160074c
@@ -1,18 +1,21 @@
1
1
  require 'rspec/core'
2
- require 'rspec/legacy_formatters'
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 < RSpec::Core::Formatters::BaseFormatter
6
+ class Formatter
7
+ ::RSpec::Core::Formatters.register self, :dump_failures
8
+
8
9
  FILENAME = 'rspec.failures'
9
10
 
10
- def dump_failures
11
- if failed_examples.empty?
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.location.gsub("\"", "\\\"") + "\n"
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
@@ -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
- options
35
- else
36
- { retry_count: options }
37
- end
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 rerun(args)
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
- file_contents = File.read(dot_rspec_file)
67
- file_contents.split(/\n+/).map(&:shellsplit).flatten
68
- else
69
- []
70
- end
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 = args[:pattern] if args[: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.rerun(parsed_args)
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
@@ -1,5 +1,5 @@
1
1
  module RSpec
2
2
  module Rerun
3
- VERSION = '1.0.0'
3
+ VERSION = '1.1.0'
4
4
  end
5
5
  end
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.0.0
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-05-14 00:00:00.000000000 Z
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.29.1
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.29.1
68
+ version: 0.31.0
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: bump
85
71
  requirement: !ruby/object:Gem::Requirement