parallelized_specs 0.4.28 → 0.4.29
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.
- data/Rakefile +1 -1
- data/lib/parallelized_specs.rb +29 -0
- data/parallelized_specs.gemspec +2 -2
- metadata +4 -4
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.29"
|
16
16
|
end
|
17
17
|
Jeweler::GemcutterTasks.new
|
18
18
|
rescue LoadError
|
data/lib/parallelized_specs.rb
CHANGED
@@ -9,6 +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
|
+
require 'parallelized_specs/slowest_specs_logger'
|
12
13
|
|
13
14
|
|
14
15
|
class ParallelizedSpecs
|
@@ -107,6 +108,8 @@ class ParallelizedSpecs
|
|
107
108
|
run_tests(group, groups.index(group), options)
|
108
109
|
end
|
109
110
|
|
111
|
+
slowest_spec_determination("#{RAILS_ROOT}/tmp/parallel_log/slowest_specs.log")
|
112
|
+
|
110
113
|
#parse and print results
|
111
114
|
results = find_results(test_results.map { |result| result[:stdout] }*"")
|
112
115
|
#puts ""
|
@@ -166,6 +169,32 @@ class ParallelizedSpecs
|
|
166
169
|
[num_processes.to_i, pattern.to_s]
|
167
170
|
end
|
168
171
|
|
172
|
+
def self.slowest_spec_determination(file)
|
173
|
+
if File.exists?(file)
|
174
|
+
spec_durations = []
|
175
|
+
File.open(file).each_line do |line|
|
176
|
+
spec_durations << line
|
177
|
+
end
|
178
|
+
File.open(file, 'w') { |f| f.truncate(0) }
|
179
|
+
populate_slowest_specs(spec_durations, file)
|
180
|
+
else
|
181
|
+
puts "slow spec profiling was not enabled"
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
def self.populate_slowest_specs(spec_durations, file)
|
186
|
+
slowest_specs = []
|
187
|
+
spec_durations.each do |spec|
|
188
|
+
time = spec.match(/.*\d/).to_s
|
189
|
+
if time.to_f >= 30
|
190
|
+
slowest_specs << spec
|
191
|
+
end
|
192
|
+
end
|
193
|
+
slowest_specs.each do |slow_spec|
|
194
|
+
File.open(file, 'a+') { |f| f.puts slow_spec }
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
169
198
|
# finds all tests and partitions them into groups
|
170
199
|
def self.tests_in_groups(tests, num_groups, options)
|
171
200
|
if options[:no_sort]
|
data/parallelized_specs.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
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.29"
|
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"]
|
12
|
-
s.date = "2013-03-
|
12
|
+
s.date = "2013-03-26"
|
13
13
|
s.email = "jake@instructure.com"
|
14
14
|
s.files = [
|
15
15
|
"Gemfile",
|
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: 53
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 29
|
10
|
+
version: 0.4.29
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jake Sorce, Bryan Madsen, Shawn Meredith
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2013-03-
|
18
|
+
date: 2013-03-26 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: parallel
|