parallel_tests 0.3.6 → 0.3.7
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/README.markdown +3 -4
- data/VERSION +1 -1
- data/bin/parallel_test +2 -2
- data/lib/parallel_tests.rb +3 -2
- data/parallel_tests.gemspec +2 -2
- data/spec/integration_spec.rb +8 -1
- data/spec/parallel_tests_spec.rb +19 -0
- metadata +3 -3
data/README.markdown
CHANGED
@@ -62,13 +62,12 @@ Setup for non-rails
|
|
62
62
|
Options are:
|
63
63
|
-n [PROCESSES] How many processes to use, default: available CPUs
|
64
64
|
-p, --path [PATH] run tests inside this path only
|
65
|
-
-
|
66
|
-
--files run these test files (comma-separated list w/o spaces)
|
65
|
+
--no-sort do not sort files before running them
|
67
66
|
-r, --root [PATH] execute test commands from this path
|
68
67
|
-f, --files [FILES] run these test files (comma-separated list w/o spaces)
|
69
68
|
-m, --multiply-processes [FLOAT] use given number as a multiplier of processes to run
|
70
69
|
-e, --exec [COMMAND] execute this code parallel and with ENV['TEST_ENV_NUM']
|
71
|
-
-o, --test-options '[
|
70
|
+
-o, --test-options '[OPTIONS]' execute test commands with those options
|
72
71
|
-t, --type [TYPE] which type of tests to run? test, spec or features
|
73
72
|
-v, --version Show Version
|
74
73
|
-h, --help Show this.
|
@@ -114,7 +113,7 @@ inspired by [pivotal labs](http://pivotallabs.com/users/miked/blog/articles/849-
|
|
114
113
|
- [Kevin Scaldeferri](http://kevin.scaldeferri.com/blog/)
|
115
114
|
- [Kpumuk](http://kpumuk.info/)
|
116
115
|
- [Maksim Horbul](http://github.com/mhorbul)
|
117
|
-
- [Pivotal Labs]
|
116
|
+
- [Pivotal Labs](http://www.pivotallabs.com)
|
118
117
|
- [Rohan Deshpande](http://github.com/rdeshpande)
|
119
118
|
- [Tchandy](http://thiagopradi.net/)
|
120
119
|
- [Terence Lee](http://hone.heroku.com/)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.7
|
data/bin/parallel_test
CHANGED
@@ -13,6 +13,7 @@ Options are:
|
|
13
13
|
BANNER
|
14
14
|
opts.on("-n [PROCESSES]", Integer, "How many processes to use, default: available CPUs"){|n| options[:count] = n }
|
15
15
|
opts.on("-p", '--path [PATH]', "run tests inside this path only"){|path| options[:path_prefix] = path }
|
16
|
+
opts.on("--no-sort", "do not sort files before running them"){ |no_sort| options[:no_sort] = no_sort }
|
16
17
|
opts.on("-m [FLOAT]", "--multiply-processes [FLOAT]", Float, "use given number as a multiplier of processes to run"){ |multiply| options[:multiply] = multiply }
|
17
18
|
opts.on("-r", '--root [PATH]', "execute test commands from this path"){|path| options[:root] = path }
|
18
19
|
opts.on("-e", '--exec [COMMAND]', "execute this code parallel and with ENV['TEST_ENV_NUM']"){|path| options[:execute] = path }
|
@@ -22,7 +23,6 @@ BANNER
|
|
22
23
|
opts.on("-h", "--help", "Show this.") { puts opts; exit }
|
23
24
|
end.parse!
|
24
25
|
|
25
|
-
|
26
26
|
# get files to run from arguments
|
27
27
|
options[:files] = ARGV if ARGV.size > 0
|
28
28
|
|
@@ -50,7 +50,7 @@ else
|
|
50
50
|
tests_folder = File.join(task, options[:path_prefix].to_s)
|
51
51
|
tests_folder = File.join(options[:root], tests_folder) unless options[:root].to_s.empty?
|
52
52
|
|
53
|
-
groups = klass.tests_in_groups(options[:files] || tests_folder, num_processes)
|
53
|
+
groups = klass.tests_in_groups(options[:files] || tests_folder, num_processes, :no_sort => options[:no_sort])
|
54
54
|
num_processes = groups.size
|
55
55
|
|
56
56
|
#adjust processes to groups
|
data/lib/parallel_tests.rb
CHANGED
@@ -18,8 +18,9 @@ class ParallelTests
|
|
18
18
|
end
|
19
19
|
|
20
20
|
# finds all tests and partitions them into groups
|
21
|
-
def self.tests_in_groups(root, num)
|
22
|
-
tests_with_sizes =
|
21
|
+
def self.tests_in_groups(root, num, options={})
|
22
|
+
tests_with_sizes = find_tests_with_sizes(root)
|
23
|
+
tests_with_sizes = slow_specs_first(tests_with_sizes) unless options[:no_sort]
|
23
24
|
|
24
25
|
# always add to smallest group
|
25
26
|
groups = Array.new(num){{:tests => [], :size => 0}}
|
data/parallel_tests.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{parallel_tests}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.7"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Michael Grosser"]
|
12
|
-
s.date = %q{2010-05-
|
12
|
+
s.date = %q{2010-05-15}
|
13
13
|
s.email = %q{grosser.michael@gmail.com}
|
14
14
|
s.executables = ["parallel_spec", "parallel_cucumber", "parallel_test"]
|
15
15
|
s.extra_rdoc_files = [
|
data/spec/integration_spec.rb
CHANGED
@@ -91,4 +91,11 @@ describe 'CLI' do
|
|
91
91
|
result.should include('333')
|
92
92
|
result.should_not include('222')
|
93
93
|
end
|
94
|
-
|
94
|
+
|
95
|
+
it "can run with test-options" do
|
96
|
+
write "x1_spec.rb", ""
|
97
|
+
write "x2_spec.rb", ""
|
98
|
+
result = run_specs(:add => "--test-options ' --version'", :processes => 2)
|
99
|
+
result.should =~ /^rspec [\d\.]+\nrspec [\d\.]+$/m # prints version twice
|
100
|
+
end
|
101
|
+
end
|
data/spec/parallel_tests_spec.rb
CHANGED
@@ -49,6 +49,25 @@ describe ParallelTests do
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
+
describe :test_in_groups do
|
53
|
+
it "does not sort when passed false do_sort option" do
|
54
|
+
ParallelTests.should_not_receive(:slow_specs_first)
|
55
|
+
ParallelTests.tests_in_groups [], 1, :no_sort => true
|
56
|
+
end
|
57
|
+
|
58
|
+
it "does sort when not passed do_sort option" do
|
59
|
+
ParallelTests.stub!(:find_tests_with_sizes).and_return([])
|
60
|
+
ParallelTests.should_receive(:slow_specs_first).and_return([])
|
61
|
+
ParallelTests.tests_in_groups [], 1
|
62
|
+
end
|
63
|
+
|
64
|
+
it "does sort when not passed true do_sort option" do
|
65
|
+
ParallelTests.stub!(:find_tests_with_sizes).and_return([])
|
66
|
+
ParallelTests.should_receive(:slow_specs_first).and_return([])
|
67
|
+
ParallelTests.tests_in_groups [], 1
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
52
71
|
describe :find_results do
|
53
72
|
it "finds multiple results in test output" do
|
54
73
|
output = <<EOF
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 7
|
9
|
+
version: 0.3.7
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Michael Grosser
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-05-
|
17
|
+
date: 2010-05-15 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|