parallel_split_test 0.6.0 → 0.7.0
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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45de1287c50f21414ec9cfd8cd44f15063757423
|
4
|
+
data.tar.gz: 77b10746bf20d6b9b0bbc334617d3c1648c7ba5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01bf113de23323bdbb7f64eef5f4aeb885cf40dd915e0d1701dc6bf9995b7773b43f8c1cc06f1ad9b4d086453cec57e45da5dc4b550281917e30ae8bd5d8f7e7
|
7
|
+
data.tar.gz: e72f3554bae41f8590eb896d9e8ae69da8ae62ff2f9efb4a844274142f8b0a6a73dc068b1585d0cdfc22df8c19924270d56b2f3a9c6778074a7051776aae4e28
|
@@ -3,6 +3,7 @@ require 'parallel_split_test/output_recorder'
|
|
3
3
|
require 'parallel'
|
4
4
|
require 'rspec'
|
5
5
|
require 'parallel_split_test/core_ext/rspec_example'
|
6
|
+
require 'parallel_split_test/core_ext/rspec_world'
|
6
7
|
|
7
8
|
module ParallelSplitTest
|
8
9
|
class CommandLine < RSpec::Core::Runner
|
@@ -26,11 +27,9 @@ module ParallelSplitTest
|
|
26
27
|
set_test_env_number(process_number)
|
27
28
|
modify_out_file_in_args(process_number) if out_file
|
28
29
|
out = OutputRecorder.new(out)
|
29
|
-
|
30
|
-
[run_group_of_tests, out.recorded]
|
30
|
+
[super(err, out), out.recorded]
|
31
31
|
end
|
32
32
|
|
33
|
-
|
34
33
|
combine_out_files if out_file unless no_merge
|
35
34
|
|
36
35
|
reprint_result_lines(out, results.map(&:last)) unless no_summary
|
@@ -41,7 +40,7 @@ module ParallelSplitTest
|
|
41
40
|
|
42
41
|
# modify + reparse args to unify output
|
43
42
|
def modify_out_file_in_args(process_number)
|
44
|
-
@args[out_file_position] = "#{out_file_basename}.#{process_number}#{File.extname(out_file)}"
|
43
|
+
@args[out_file_position] = "#{out_file_parent_dir}/#{out_file_basename}.#{process_number}#{File.extname(out_file)}"
|
45
44
|
@options = RSpec::Core::ConfigurationOptions.new(@args)
|
46
45
|
end
|
47
46
|
|
@@ -53,6 +52,10 @@ module ParallelSplitTest
|
|
53
52
|
@out_file ||= @args[out_file_position] if out_file_position
|
54
53
|
end
|
55
54
|
|
55
|
+
def out_file_parent_dir
|
56
|
+
@out_file_parent_dir ||= File.expand_path("#{out_file}/../.")
|
57
|
+
end
|
58
|
+
|
56
59
|
def out_file_basename
|
57
60
|
@out_file_basename ||= File.basename(out_file, File.extname(out_file))
|
58
61
|
end
|
@@ -67,7 +70,7 @@ module ParallelSplitTest
|
|
67
70
|
|
68
71
|
def combine_out_files
|
69
72
|
File.open(out_file, "w") do |f|
|
70
|
-
Dir["#{out_file_basename}.*#{File.extname(out_file)}"].each do |file|
|
73
|
+
Dir["#{out_file_parent_dir}/#{out_file_basename}.*#{File.extname(out_file)}"].each do |file|
|
71
74
|
f.write File.read(file)
|
72
75
|
File.delete(file)
|
73
76
|
end
|
@@ -79,24 +82,5 @@ module ParallelSplitTest
|
|
79
82
|
out.puts "Summary:"
|
80
83
|
out.puts printed_outputs.map{|o| o[/.*\d+ failure.*/] }.join("\n")
|
81
84
|
end
|
82
|
-
|
83
|
-
def run_group_of_tests
|
84
|
-
example_count = @world.example_count / ParallelSplitTest.processes
|
85
|
-
|
86
|
-
@configuration.reporter.report(example_count) do |reporter|
|
87
|
-
groups = @world.example_groups
|
88
|
-
results = groups.map {|g| g.run(reporter)}
|
89
|
-
results.all? ? 0 : @configuration.failure_exit_code
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
# https://github.com/rspec/rspec-core/blob/6ee92a0d47bcb1f3abcd063dca2cee005356d709/lib/rspec/core/runner.rb#L93
|
94
|
-
def setup_copied_from_rspec(err, out)
|
95
|
-
@configuration.error_stream = err
|
96
|
-
@configuration.output_stream = out if @configuration.output_stream == $stdout
|
97
|
-
@options.configure(@configuration)
|
98
|
-
@configuration.load_spec_files
|
99
|
-
@world.announce_filters
|
100
|
-
end
|
101
85
|
end
|
102
86
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'parallel_split_test'
|
2
|
+
require 'rspec/core/example'
|
3
|
+
|
4
|
+
RSpec::Core::World.class_eval do
|
5
|
+
alias :example_count_without_parallel_split_test :example_count
|
6
|
+
def example_count(*args, &block)
|
7
|
+
count = example_count_without_parallel_split_test(*args, &block)
|
8
|
+
quotient = count / ParallelSplitTest.processes
|
9
|
+
if ParallelSplitTest.process_number < count % ParallelSplitTest.processes
|
10
|
+
quotient + 1
|
11
|
+
else
|
12
|
+
quotient
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parallel_split_test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -50,6 +50,7 @@ files:
|
|
50
50
|
- lib/parallel_split_test.rb
|
51
51
|
- lib/parallel_split_test/command_line.rb
|
52
52
|
- lib/parallel_split_test/core_ext/rspec_example.rb
|
53
|
+
- lib/parallel_split_test/core_ext/rspec_world.rb
|
53
54
|
- lib/parallel_split_test/output_recorder.rb
|
54
55
|
- lib/parallel_split_test/runner.rb
|
55
56
|
- lib/parallel_split_test/version.rb
|
@@ -73,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
73
74
|
version: '0'
|
74
75
|
requirements: []
|
75
76
|
rubyforge_project:
|
76
|
-
rubygems_version: 2.
|
77
|
+
rubygems_version: 2.5.1
|
77
78
|
signing_key:
|
78
79
|
specification_version: 4
|
79
80
|
summary: Split a big test file into multiple chunks and run them in parallel
|