parallel_tests 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +3 -2
- data/VERSION +1 -1
- data/bin/parallel_test +2 -1
- data/lib/parallel_cucumber.rb +4 -4
- data/lib/parallel_specs.rb +2 -2
- data/lib/parallel_tests.rb +9 -1
- data/parallel_tests.gemspec +2 -2
- data/spec/integration_spec.rb +12 -2
- data/spec/spec_helper.rb +6 -0
- metadata +3 -3
data/README.markdown
CHANGED
@@ -48,7 +48,7 @@ Example output
|
|
48
48
|
|
49
49
|
Even process runtimes (for specs only atm)
|
50
50
|
-----------------
|
51
|
-
Add to your `spec/
|
51
|
+
Add to your `spec/parallel_spec.opts` (or `spec/spec.opts`) :
|
52
52
|
--format ParallelSpecs::SpecRuntimeLogger:tmp/parallel_profile.log
|
53
53
|
It will log test runtime and partition the test-load accordingly.
|
54
54
|
|
@@ -109,7 +109,8 @@ inspired by [pivotal labs](http://pivotallabs.com/users/miked/blog/articles/849-
|
|
109
109
|
- [Joakim Kolsjö](http://www.rubyblocks.se)
|
110
110
|
- [Kevin Scaldeferri](http://kevin.scaldeferri.com/blog/)
|
111
111
|
- [Kpumuk](http://kpumuk.info/)
|
112
|
-
- [Maksim
|
112
|
+
- [Maksim Horbul](http://github.com/mhorbul)
|
113
|
+
- [Pivotal Labs][http://pivotallabs.com]
|
113
114
|
- [Rohan Deshpande](http://github.com/rdeshpande)
|
114
115
|
- [Tchandy](http://thiagopradi.net/)
|
115
116
|
- [Terence Lee](http://hone.heroku.com/)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.5
|
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("-f", '--files path/to/test_file,path/to/other_test_file]', Array, "run these test files (comma-separated list w/o spaces)"){|files| options[:files] = files }
|
16
17
|
opts.on("-r", '--root [PATH]', "execute test commands from this path"){|path| options[:root] = path }
|
17
18
|
opts.on("-e", '--exec [COMMAND]', "execute this code parallel and with ENV['TEST_ENV_NUM']"){|path| options[:execute] = path }
|
18
19
|
opts.on("-o", '--test-options [SOMETHING]', "execute test commands with those options"){|arg| options[:test_options] = arg }
|
@@ -44,7 +45,7 @@ else
|
|
44
45
|
tests_folder = File.join(task, options[:path_prefix].to_s)
|
45
46
|
tests_folder = File.join(options[:root], tests_folder) unless options[:root].to_s.empty?
|
46
47
|
|
47
|
-
groups = klass.tests_in_groups(tests_folder, num_processes)
|
48
|
+
groups = klass.tests_in_groups(options[:files] || tests_folder, num_processes)
|
48
49
|
num_processes = groups.size
|
49
50
|
|
50
51
|
#adjust processes to groups
|
data/lib/parallel_cucumber.rb
CHANGED
@@ -19,6 +19,10 @@ class ParallelCucumber < ParallelTests
|
|
19
19
|
|
20
20
|
protected
|
21
21
|
|
22
|
+
def self.test_suffix
|
23
|
+
".feature"
|
24
|
+
end
|
25
|
+
|
22
26
|
def self.line_is_result?(line)
|
23
27
|
line =~ /^\d+ (steps|scenarios)/
|
24
28
|
end
|
@@ -26,8 +30,4 @@ class ParallelCucumber < ParallelTests
|
|
26
30
|
def self.line_is_failure?(line)
|
27
31
|
line =~ /^\d+ (steps|scenarios).*(\d{2,}|[1-9]) failed/
|
28
32
|
end
|
29
|
-
|
30
|
-
def self.find_tests(root)
|
31
|
-
Dir["#{root}**/**/*.feature"]
|
32
|
-
end
|
33
33
|
end
|
data/lib/parallel_specs.rb
CHANGED
data/lib/parallel_tests.rb
CHANGED
@@ -108,7 +108,15 @@ class ParallelTests
|
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
111
|
+
def self.test_suffix
|
112
|
+
"_test.rb"
|
113
|
+
end
|
114
|
+
|
111
115
|
def self.find_tests(root)
|
112
|
-
|
116
|
+
if root.is_a?(Array)
|
117
|
+
root
|
118
|
+
else
|
119
|
+
Dir["#{root}**/**/*#{self.test_suffix}"]
|
120
|
+
end
|
113
121
|
end
|
114
122
|
end
|
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.5"
|
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-
|
12
|
+
s.date = %q{2010-05-01}
|
13
13
|
s.email = %q{grosser.michael@gmail.com}
|
14
14
|
s.executables = ["parallel_test", "parallel_spec", "parallel_cucumber"]
|
15
15
|
s.extra_rdoc_files = [
|
data/spec/integration_spec.rb
CHANGED
@@ -4,7 +4,7 @@ describe 'CLI' do
|
|
4
4
|
end
|
5
5
|
|
6
6
|
after do
|
7
|
-
`rm -rf #{folder}`
|
7
|
+
# `rm -rf #{folder}`
|
8
8
|
end
|
9
9
|
|
10
10
|
def folder
|
@@ -27,7 +27,7 @@ describe 'CLI' do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def run_specs(options={})
|
30
|
-
`cd #{folder} && #{executable} -t spec -n #{options[:processes]||2} 2>&1 && echo 'i ran!'`
|
30
|
+
`cd #{folder} && #{executable} -t spec -n #{options[:processes]||2} #{options[:add]} 2>&1 && echo 'i ran!'`
|
31
31
|
end
|
32
32
|
|
33
33
|
it "runs tests in parallel" do
|
@@ -81,4 +81,14 @@ describe 'CLI' do
|
|
81
81
|
expected = ((Parallel.processor_count == 1 or ENV['RUN_CODE_RUN']) ? 10 : 5)
|
82
82
|
(Time.now - t).should <= expected
|
83
83
|
end
|
84
|
+
|
85
|
+
it "can run with given files" do
|
86
|
+
write "x1_spec.rb", "puts '111'"
|
87
|
+
write "x2_spec.rb", "puts '222'"
|
88
|
+
write "x3_spec.rb", "puts '333'"
|
89
|
+
result = run_specs(:add => '--files spec/x1_spec.rb,spec/x3_spec.rb')
|
90
|
+
result.should include('111')
|
91
|
+
result.should include('333')
|
92
|
+
result.should_not include('222')
|
93
|
+
end
|
84
94
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -30,6 +30,12 @@ def test_tests_in_groups(klass, folder, suffix)
|
|
30
30
|
`rm -f #{@log}`
|
31
31
|
end
|
32
32
|
|
33
|
+
it "groups when given an array of files" do
|
34
|
+
list_of_files = Dir["#{test_root}/**/*#{suffix}"]
|
35
|
+
found = klass.find_tests_with_sizes(list_of_files)
|
36
|
+
found.should =~ list_of_files.map{ |file| [file, File.stat(file).size]}
|
37
|
+
end
|
38
|
+
|
33
39
|
it "finds all tests" do
|
34
40
|
found = klass.tests_in_groups(test_root, 1)
|
35
41
|
all = [ Dir["#{test_root}/**/*#{suffix}"] ]
|
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
|
+
- 5
|
9
|
+
version: 0.3.5
|
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-
|
17
|
+
date: 2010-05-01 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|