flakey_spec_catcher 0.7.0 → 0.7.1

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
  SHA256:
3
- metadata.gz: 993c31c2baefd8e58b525db89b1ff79ea1d6220c2d515151fda4ce2c2bcd6df7
4
- data.tar.gz: 4760b425917fc1284e46eaaa73e8cf48f4f1f6224fc423beb18f749df6756d0f
3
+ metadata.gz: bbde8c00cdc9c8c24d9d81572fe3217d73114d7d360a87ff4f08adea746aae55
4
+ data.tar.gz: 8142ae2b56440f6a53db1b03c3e736a5556aed9c31945e0ccfbfc3a5d9df5b3b
5
5
  SHA512:
6
- metadata.gz: 59be5545a0be53ffc435a299458d665893c35b7df44d9d3c8a8522792cd3ad68069b777d0ac9bd4bc8f10850ad38f679bcaac5fa198023836fe472b633daf401
7
- data.tar.gz: aff2fe42b718049783361bf81d554182928963cc0e9bb0a4a27d9d0ceef7cc72dfbc155e24ad6a1a0c5effb5621ac35b3ae2c69f7c3ed8b16d87107eafecacc4
6
+ metadata.gz: 69f5f46b6dc7a8cf31c030b16a3a129dc5768b60214abc9cf603facc4ad3c94d2ee2df7a08838c9b033d91941dc7af4b388861f94b0f539466a107b2dfd10a7c
7
+ data.tar.gz: 72325c48ca9c58ab7f65f569905b3a4782b9678cf608f86c9b8982f4b6cc70c797e5a6ee6ab04c7d35c1c9275c35d48d9b1f38b1e9d60e08bf8caf357db08db2
@@ -7,7 +7,7 @@ module FlakeySpecCatcher
7
7
  #
8
8
  # Captures command line arguments for manual re-runs
9
9
  class CliOverride
10
- attr_reader :rerun_pattern, :rerun_usage, :repeat_factor, :enable_runs, :excluded_tags
10
+ attr_reader :rerun_patterns, :rerun_usage, :repeat_factor, :enable_runs, :excluded_tags
11
11
 
12
12
  def initialize
13
13
  @enable_runs = true
@@ -23,19 +23,20 @@ module FlakeySpecCatcher
23
23
  opts.banner = 'Usage: flakey_spec_catcher [OPTIONS]'
24
24
 
25
25
  opts.on('-t', '--test=TEST_NAME',
26
- 'Specify a spec as `path/to/file:line_number` or `file/path` to run') do |test|
27
- @rerun_pattern = remove_formatter_quotes(test)
26
+ 'Specify one or more specs in comma separated list ' \
27
+ 'as `<path/to/file:line_number>, <path/to/file:line_number>...`') do |test|
28
+ @rerun_patterns = remove_formatter_quotes(test)
28
29
  end
29
30
 
30
31
  opts.on('-u', '--usage=USAGE', 'Specify a re-run usage for the manual re-run') do |usage|
31
- raise ArgumentError if @rerun_pattern.nil?
32
+ raise ArgumentError if @rerun_patterns.nil?
32
33
 
33
34
  @rerun_usage = remove_formatter_quotes(usage)
34
35
  end
35
36
 
36
37
  opts.on('-r', '--repeat=REPEAT_FACTOR',
37
38
  'Specify a repeat factor for the manual re-run(s)') do |repeat|
38
- raise ArgumentError if @rerun_pattern.nil?
39
+ raise ArgumentError if @rerun_patterns.nil?
39
40
 
40
41
  parsed_repeat_factor = remove_formatter_quotes(repeat).to_i
41
42
  @repeat_factor = parsed_repeat_factor if parsed_repeat_factor.positive?
@@ -20,11 +20,11 @@ module FlakeySpecCatcher
20
20
  end
21
21
 
22
22
  def determine_rerun_usage
23
- if @user_config.manual_rerun_pattern.nil?
23
+ if @user_config.manual_rerun_patterns.nil?
24
24
  pair_reruns_with_usages
25
25
  else
26
26
  @rerun_capsules.clear
27
- inject_manual_reruns(@user_config.manual_rerun_pattern,
27
+ inject_manual_reruns(@user_config.manual_rerun_patterns,
28
28
  @user_config.manual_rerun_usage)
29
29
  end
30
30
  end
@@ -81,31 +81,33 @@ module FlakeySpecCatcher
81
81
  end
82
82
 
83
83
  # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
84
- def inject_manual_reruns(pattern, usage)
85
- # Check if file exists first and handle if user supplies testcase:line_number
86
- file_name = pattern.split(':')[0]
87
- line_number_present = pattern.split(':').count > 1
88
- matching_files = Dir.glob(file_name)
89
-
90
- # If no file matches are run, don't queue up re-runs
91
- if matching_files.count.zero?
92
- puts "Specified pattern #{pattern} did not match an existing file"
93
- raise ArgumentError
94
- end
95
-
96
- # It won't make sense to have multiple files to run with one specific line number
97
- if line_number_present
98
- if matching_files.count > 1
99
- puts "Specified pattern #{pattern} matched multiple files but a line number was specified"
84
+ def inject_manual_reruns(patterns, usage)
85
+ patterns.tr(' ', '').split(',').each do |pattern|
86
+ # Check if file exists first and handle if user supplies testcase:line_number
87
+ file_name = pattern.split(':')[0]
88
+ line_number_present = pattern.split(':').count > 1
89
+ matching_files = Dir.glob(file_name)
90
+
91
+ # If no file matches are run, don't queue up re-runs
92
+ if matching_files.count.zero?
93
+ puts "Specified pattern #{pattern} did not match an existing file"
100
94
  raise ArgumentError
101
- else
102
- add_rerun_capsule(testcase: pattern, usage: usage)
103
95
  end
104
96
 
105
- # No line numbers, queue up all matching files
106
- else
107
- matching_files.each do |file|
108
- add_rerun_capsule(testcase: file, usage: usage)
97
+ # It won't make sense to have multiple files to run with one specific line number
98
+ if line_number_present
99
+ if matching_files.count > 1
100
+ puts "Specified pattern #{pattern} matched multiple files but a line number was given"
101
+ raise ArgumentError
102
+ else
103
+ add_rerun_capsule(testcase: pattern, usage: usage)
104
+ end
105
+
106
+ # No line numbers, queue up all matching files
107
+ else
108
+ matching_files.each do |file|
109
+ add_rerun_capsule(testcase: file, usage: usage)
110
+ end
109
111
  end
110
112
  end
111
113
  end
@@ -10,7 +10,7 @@ module FlakeySpecCatcher
10
10
  class UserConfig
11
11
  attr_reader :repeat_factor, :ignore_files, :ignore_branches, :silent_mode
12
12
  attr_reader :rerun_file_only, :rspec_usage_patterns, :excluded_tags
13
- attr_reader :manual_rerun_pattern, :manual_rerun_usage
13
+ attr_reader :manual_rerun_patterns, :manual_rerun_usage
14
14
  attr_reader :enable_runs
15
15
 
16
16
  USER_CONFIG_ENV_VARS = %w[FSC_REPEAT_FACTOR FSC_IGNORE_FILES FSC_IGNORE_BRANCHES
@@ -38,13 +38,13 @@ module FlakeySpecCatcher
38
38
 
39
39
  def override_settings
40
40
  apply_cli_override
41
- return unless @manual_rerun_pattern.nil?
41
+ return unless @manual_rerun_patterns.nil?
42
42
 
43
43
  parse_commit_message
44
44
  end
45
45
 
46
46
  def apply_cli_override
47
- @manual_rerun_pattern = @cli_override.rerun_pattern
47
+ @manual_rerun_patterns = @cli_override.rerun_patterns
48
48
  @manual_rerun_usage = @cli_override.rerun_usage
49
49
  @repeat_factor = @cli_override.repeat_factor if @cli_override.repeat_factor.to_i.positive?
50
50
  @enable_runs = @cli_override.enable_runs
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FlakeySpecCatcher
4
- VERSION = '0.7.0'
4
+ VERSION = '0.7.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flakey_spec_catcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Watson