parallelized_specs 0.4.48 → 0.4.49

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -12,7 +12,7 @@ begin
12
12
  gem.email = "jake@instructure.com"
13
13
  gem.homepage = "http://github.com/jakesorce/#{gem.name}"
14
14
  gem.authors = "Jake Sorce, Bryan Madsen, Shawn Meredith"
15
- gem.version = "0.4.48"
15
+ gem.version = "0.4.49"
16
16
  end
17
17
  Jeweler::GemcutterTasks.new
18
18
  rescue LoadError
@@ -87,6 +87,7 @@ class ParallelizedSpecs
87
87
  formatters = formatters_setup
88
88
  @outcome_builder_enabled = formatters.any? { |formatter| formatter.match(/OutcomeBuilder/) }
89
89
  @reruns_enabled = formatters.any? { |formatter| formatter.match(/FailuresFormatter/) }
90
+ @slow_specs_enabled = formatters.any? { |formatter| formatter.match(/SlowestSpecLogger/) }
90
91
  num_processes = options[:count] || Parallel.processor_count
91
92
  name = 'spec'
92
93
 
@@ -111,32 +112,33 @@ class ParallelizedSpecs
111
112
  run_tests(group, groups.index(group), options)
112
113
  end
113
114
  failed = test_results.any? { |result| result[:exit_status] != 0 } #ruby 1.8.7 works breaks on 1.9.3
114
- slowest_spec_determination("#{Rails.root}/tmp/parallel_log/slowest_specs.log")
115
+ slowest_spec_determination("#{Rails.root}/tmp/parallel_log/slowest_specs.log") if @slow_specs_enabled
115
116
 
116
117
  #determines if any tricky conditions happened that can cause false positives and offers logging into what was the last spec to start or finishing running
118
+ results = find_results(test_results.map { |result| result[:stdout] }*"")
119
+ @outcome_builder_enabled ? spec_summary = calculate_total_spec_details : spec_summary = summarize_results(results)
120
+
117
121
  if @outcome_builder_enabled
118
122
  puts "INFO: OutcomeBuilder is enabled now checking for false positives"
119
- spec_summary = calculate_total_spec_details
120
123
  puts "INFO: Total specs run #{spec_summary[0]} failed specs #{spec_summary[1]} pending specs #{spec_summary[2]}\n INFO: Took #{Time.now - start} seconds"
121
124
  false_positive_sniffer(num_processes)
125
+ if @reruns_enabled
126
+ puts "INFO: RERUNS are enabled"
127
+ rerun_initializer(name, failed, spec_summary)
128
+ else
129
+ abort("SEVERE: #{name.capitalize}s Failed") if failed || spec_summary[2].to_i != 0
130
+ end
122
131
  else
123
- puts "INFO: OutcomeBuilder is disabled not checking for false positives"
124
- results = find_results(test_results.map { |result| result[:stdout] }*"")
125
- puts summarize_results(results)
132
+ puts "WARNING: OutcomeBuilder is disabled not checking for false positives its likely things like thread failures and rspec non 0 exit codes will cause false positives"
133
+ puts spec_summary
126
134
  puts "INFO: Took #{Time.now - start} seconds"
127
- end
128
-
129
- if @reruns_enabled
130
- puts "INFO: RERUNS are enabled starting the rerun process"
131
- rerun_initializer(name, failed)
132
- else
133
135
  abort("SEVERE: #{name.capitalize}s Failed") if failed
134
136
  end
135
137
  puts "INFO: marking build as PASSED"
136
138
  end
137
139
 
138
140
  def self.calculate_total_spec_details
139
- spec_total_details = [0,0,0]
141
+ spec_total_details = [0, 0, 0]
140
142
  File.open("#{Rails.root}/tmp/parallel_log/total_specs.txt").each_line do |count|
141
143
  thread_spec_details = count.split("*")
142
144
  spec_total_details[0] += thread_spec_details[0].to_i
@@ -178,13 +180,13 @@ class ParallelizedSpecs
178
180
  end
179
181
  end
180
182
 
181
- def self.rerun_initializer(name, failed)
182
- if !File.zero?("#{Rails.root}/tmp/parallel_log/rspec.failures") # works on both 1.8.7\1.9.3
183
- puts "INFO: some specs failed, about to start the rerun process\n INFO: no more than 9 specs may be rerun and shared specs are not allowed\n...\n..\n."
183
+ def self.rerun_initializer(name, failed, spec_summary)
184
+ if spec_summary[2].to_i != 0 && !File.zero?("#{Rails.root}/tmp/parallel_log/rspec.failures") # works on both 1.8.7\1.9.3
185
+ puts "INFO: some specs failed, about to start the rerun process\n...\n..\n."
184
186
  ParallelizedSpecs.rerun()
185
187
  else
186
188
  #works on both 1.8.7\1.9.3
187
- abort "SEVERE: #{name.capitalize}s Failed" if Dir.glob("#{Rails.root}/tmp/parallel_log/failed_specs/{*,.*}").count > 2 || failed
189
+ abort "SEVERE: #{name.capitalize}s Failed" if spec_summary[2].to_i != 0 || failed
188
190
  end
189
191
  end
190
192
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "parallelized_specs"
8
- s.version = "0.4.48"
8
+ s.version = "0.4.49"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jake Sorce, Bryan Madsen, Shawn Meredith"]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parallelized_specs
3
3
  version: !ruby/object:Gem::Version
4
- hash: 111
4
+ hash: 109
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 48
10
- version: 0.4.48
9
+ - 49
10
+ version: 0.4.49
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jake Sorce, Bryan Madsen, Shawn Meredith