parallelized_specs 0.4.33 → 0.4.34
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/parallelized_specs.rb +8 -35
- data/lib/tasks/parallelized_specs.rake +1 -1
- data/parallelized_specs.gemspec +1 -1
- metadata +3 -3
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.
|
15
|
+
gem.version = "0.4.34"
|
16
16
|
end
|
17
17
|
Jeweler::GemcutterTasks.new
|
18
18
|
rescue LoadError
|
data/lib/parallelized_specs.rb
CHANGED
@@ -9,7 +9,7 @@ require 'parallelized_specs/outcome_builder'
|
|
9
9
|
require 'parallelized_specs/example_failures_logger'
|
10
10
|
require 'parallelized_specs/trending_example_failures_logger'
|
11
11
|
require 'parallelized_specs/failures_rerun_logger'
|
12
|
-
|
12
|
+
|
13
13
|
|
14
14
|
class ParallelizedSpecs
|
15
15
|
VERSION = File.read(File.join(File.dirname(__FILE__), '..', 'VERSION')).strip
|
@@ -107,8 +107,6 @@ class ParallelizedSpecs
|
|
107
107
|
run_tests(group, groups.index(group), options)
|
108
108
|
end
|
109
109
|
|
110
|
-
slowest_spec_determination("#{RAILS_ROOT}/tmp/parallel_log/slowest_specs.log")
|
111
|
-
|
112
110
|
#parse and print results
|
113
111
|
results = find_results(test_results.map { |result| result[:stdout] }*"")
|
114
112
|
#puts ""
|
@@ -152,32 +150,6 @@ class ParallelizedSpecs
|
|
152
150
|
puts "INFO: marking build as PASSED"
|
153
151
|
end
|
154
152
|
|
155
|
-
def self.slowest_spec_determination(file)
|
156
|
-
if File.exists?(file)
|
157
|
-
spec_durations = []
|
158
|
-
File.open(file).each_line do |line|
|
159
|
-
spec_durations << line
|
160
|
-
end
|
161
|
-
File.open(file, 'w') { |f| f.truncate(0) }
|
162
|
-
populate_slowest_specs(spec_durations, file)
|
163
|
-
else
|
164
|
-
puts "slow spec profiling was not enabled"
|
165
|
-
end
|
166
|
-
end
|
167
|
-
|
168
|
-
def self.populate_slowest_specs(spec_durations, file)
|
169
|
-
slowest_specs = []
|
170
|
-
spec_durations.each do |spec|
|
171
|
-
time = spec.match(/.*\d/).to_s
|
172
|
-
if time.to_f >= 30
|
173
|
-
slowest_specs << spec
|
174
|
-
end
|
175
|
-
end
|
176
|
-
slowest_specs.each do |slow_spec|
|
177
|
-
File.open(file, 'a+') { |f| f.puts slow_spec }
|
178
|
-
end
|
179
|
-
end
|
180
|
-
|
181
153
|
# parallel:spec[:count, :pattern, :options]
|
182
154
|
def self.parse_rake_args(args)
|
183
155
|
# order as given by user
|
@@ -330,7 +302,8 @@ class ParallelizedSpecs
|
|
330
302
|
#can't just use exit code, if specs fail to start it will pass or if a spec isn't found, and sometimes rspec 1 exit codes aren't right
|
331
303
|
rerun_status = result.scan(/\d*[^\D]\d*/).to_a
|
332
304
|
puts "INFO: this is the rerun_status\n#{rerun_status}"
|
333
|
-
|
305
|
+
example_index = rerun_status.length - 2
|
306
|
+
@examples = rerun_status[example_index].to_i
|
334
307
|
@failures = rerun_status.last.to_i
|
335
308
|
end
|
336
309
|
|
@@ -373,7 +346,7 @@ class ParallelizedSpecs
|
|
373
346
|
abort "SEVERE: #{@error_count} errors, but the build failed, errors were not written to the file or there is something else wrong, marking build as a failure"
|
374
347
|
when code == 6
|
375
348
|
print_failures("#{RAILS_ROOT}/tmp/parallel_log/error.log")
|
376
|
-
abort "SEVERE: #{@error_count} errors are to many to rerun, marking the build as a failure
|
349
|
+
abort "SEVERE: #{@error_count} errors are to many to rerun, marking the build as a failure"
|
377
350
|
when code == 7
|
378
351
|
puts "#Total errors #{@error_count}"
|
379
352
|
abort "SEVERE: unexpected error information, please check errors are being written to file correctly"
|
@@ -408,16 +381,15 @@ class ParallelizedSpecs
|
|
408
381
|
@error_count = %x{wc -l "#{@filename}"}.match(/\d*[^\D]/).to_s #counts the number of lines in the file
|
409
382
|
@error_count = @error_count.to_i
|
410
383
|
puts "INFO: error count = #@error_count"
|
411
|
-
ENV["RERUNS"] != nil ? @max_reruns = ENV["RERUNS"].to_i : @max_reruns = 9
|
412
384
|
|
413
|
-
if !@error_count.between?(1,
|
385
|
+
if !@error_count.between?(1, 9)
|
414
386
|
puts "INFO: total errors are not in rerun eligibility range"
|
415
387
|
case
|
416
388
|
when @error_count == 0
|
417
389
|
puts "INFO: 0 errors build being aborted"
|
418
390
|
abort_reruns(5)
|
419
|
-
when @error_count >
|
420
|
-
puts "INFO: error count has exceeded maximum errors of
|
391
|
+
when @error_count > 9
|
392
|
+
puts "INFO: error count has exceeded maximum errors of 9"
|
421
393
|
abort_reruns(6)
|
422
394
|
else
|
423
395
|
abort_reruns(7)
|
@@ -476,6 +448,7 @@ class ParallelizedSpecs
|
|
476
448
|
|
477
449
|
|
478
450
|
def self.determine_rerun_outcome
|
451
|
+
|
479
452
|
if @rerun_failures.count > 0
|
480
453
|
abort_reruns(8)
|
481
454
|
elsif @rerun_passes.count >= @error_count
|
@@ -1 +1 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), "/../parallelized_specs/tasks")
|
1
|
+
require File.join(File.dirname(__FILE__), "/../parallelized_specs/tasks")
|
data/parallelized_specs.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "parallelized_specs"
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.34"
|
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:
|
4
|
+
hash: 75
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 34
|
10
|
+
version: 0.4.34
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jake Sorce, Bryan Madsen, Shawn Meredith
|