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 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