parallel_tests 0.7.0.rc2 → 0.7.0.rc3
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/Gemfile.lock +1 -1
- data/bin/parallel_cucumber +1 -1
- data/bin/parallel_rspec +2 -0
- data/lib/parallel_tests/version.rb +1 -1
- data/parallel_tests.gemspec +1 -1
- data/spec/integration_spec.rb +41 -32
- metadata +6 -6
- data/bin/parallel_spec +0 -2
data/Gemfile.lock
CHANGED
data/bin/parallel_cucumber
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
exec "#{File.join(File.dirname(__FILE__), 'parallel_test')} -t cucumber #{ARGV * ' '}"
|
2
|
+
exec "#{File.join(File.dirname(__FILE__), 'parallel_test')} -t cucumber #{ARGV.map{|a| "'#{a}'" } * ' '}"
|
data/bin/parallel_rspec
ADDED
data/parallel_tests.gemspec
CHANGED
@@ -9,6 +9,6 @@ Gem::Specification.new name, ParallelTests::VERSION do |s|
|
|
9
9
|
s.homepage = "http://github.com/grosser/#{name}"
|
10
10
|
s.files = `git ls-files`.split("\n")
|
11
11
|
s.license = "MIT"
|
12
|
-
s.executables = ["parallel_cucumber", "
|
12
|
+
s.executables = ["parallel_cucumber", "parallel_rspec", "parallel_test"]
|
13
13
|
s.add_runtime_dependency "parallel"
|
14
14
|
end
|
data/spec/integration_spec.rb
CHANGED
@@ -24,8 +24,8 @@ describe 'CLI' do
|
|
24
24
|
"#{File.expand_path(File.dirname(__FILE__))}/../bin"
|
25
25
|
end
|
26
26
|
|
27
|
-
def executable
|
28
|
-
"#{bin_folder}/
|
27
|
+
def executable(options={})
|
28
|
+
"#{bin_folder}/parallel_#{options[:type] || 'test'}"
|
29
29
|
end
|
30
30
|
|
31
31
|
def ensure_folder(folder)
|
@@ -35,15 +35,16 @@ describe 'CLI' do
|
|
35
35
|
def run_tests(test_folder, options={})
|
36
36
|
ensure_folder folder
|
37
37
|
processes = "-n #{options[:processes]||2}" unless options[:processes] == false
|
38
|
-
|
39
|
-
|
38
|
+
command = "cd #{folder} && #{options[:export]} #{executable(options)} #{test_folder} --chunk-timeout 999 #{processes} #{options[:add]} 2>&1"
|
39
|
+
result = `#{command}`
|
40
|
+
raise "FAILED #{command}\n#{result}" if $?.success? == !!options[:fail]
|
40
41
|
result
|
41
42
|
end
|
42
43
|
|
43
44
|
it "runs tests in parallel" do
|
44
45
|
write 'spec/xxx_spec.rb', 'describe("it"){it("should"){puts "TEST1"}}'
|
45
46
|
write 'spec/xxx2_spec.rb', 'describe("it"){it("should"){puts "TEST2"}}'
|
46
|
-
result = run_tests "spec"
|
47
|
+
result = run_tests "spec", :type => 'rspec'
|
47
48
|
|
48
49
|
# test ran and gave their puts
|
49
50
|
result.should include('TEST1')
|
@@ -58,7 +59,7 @@ describe 'CLI' do
|
|
58
59
|
|
59
60
|
it "does not run any tests if there are none" do
|
60
61
|
write 'spec/xxx_spec.rb', '1'
|
61
|
-
result = run_tests "spec"
|
62
|
+
result = run_tests "spec", :type => 'rspec'
|
62
63
|
result.should include('No examples found')
|
63
64
|
result.should include('Took')
|
64
65
|
end
|
@@ -66,37 +67,39 @@ describe 'CLI' do
|
|
66
67
|
it "fails when tests fail" do
|
67
68
|
write 'spec/xxx_spec.rb', 'describe("it"){it("should"){puts "TEST1"}}'
|
68
69
|
write 'spec/xxx2_spec.rb', 'describe("it"){it("should"){1.should == 2}}'
|
69
|
-
result = run_tests "spec", :fail => true
|
70
|
+
result = run_tests "spec", :fail => true, :type => 'rspec'
|
70
71
|
|
71
72
|
result.scan('1 example, 1 failure').size.should == 1
|
72
73
|
result.scan('1 example, 0 failure').size.should == 1
|
73
74
|
result.scan('2 examples, 1 failure').size.should == 1
|
74
75
|
end
|
75
76
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
77
|
+
context "with given commands" do
|
78
|
+
it "can exec given commands with ENV['TEST_ENV_NUM']" do
|
79
|
+
result = `#{executable} -e 'ruby -e "print ENV[:TEST_ENV_NUMBER.to_s].to_i"' -n 4`
|
80
|
+
result.gsub('"','').split('').sort.should == %w[0 2 3 4]
|
81
|
+
end
|
80
82
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
83
|
+
it "can exec given command non-parallel" do
|
84
|
+
result = `#{executable} -e 'ruby -e "sleep(rand(10)/100.0); puts ENV[:TEST_ENV_NUMBER.to_s].inspect"' -n 4 --non-parallel`
|
85
|
+
result.split("\n").should == %w["" "2" "3" "4"]
|
86
|
+
end
|
85
87
|
|
86
|
-
|
87
|
-
|
88
|
-
|
88
|
+
it "exists with success if all sub-processes returned success" do
|
89
|
+
system("#{executable} -e 'cat /dev/null' -n 4").should == true
|
90
|
+
end
|
89
91
|
|
90
|
-
|
91
|
-
|
92
|
+
it "exists with failure if any sub-processes returned failure" do
|
93
|
+
system("#{executable} -e 'test -e xxxx' -n 4").should == false
|
94
|
+
end
|
92
95
|
end
|
93
96
|
|
94
|
-
it "
|
97
|
+
it "runs through parallel_rspec" do
|
95
98
|
version = `#{executable} -v`
|
96
|
-
`#{bin_folder}/
|
99
|
+
`#{bin_folder}/parallel_rspec -v`.should == version
|
97
100
|
end
|
98
101
|
|
99
|
-
it "
|
102
|
+
it "runs through parallel_cucumber" do
|
100
103
|
version = `#{executable} -v`
|
101
104
|
`#{bin_folder}/parallel_cucumber -v`.should == version
|
102
105
|
end
|
@@ -106,7 +109,7 @@ describe 'CLI' do
|
|
106
109
|
write "spec/xxx#{i}_spec.rb", 'describe("it"){it("should"){sleep 5}}; $stderr.puts ENV["TEST_ENV_NUMBER"]'
|
107
110
|
}
|
108
111
|
t = Time.now
|
109
|
-
run_tests("spec", :processes => 2)
|
112
|
+
run_tests("spec", :processes => 2, :type => 'rspec')
|
110
113
|
expected = 10
|
111
114
|
(Time.now - t).should <= expected
|
112
115
|
end
|
@@ -115,14 +118,14 @@ describe 'CLI' do
|
|
115
118
|
write "spec/x1_spec.rb", "puts '111'"
|
116
119
|
write "spec/x2_spec.rb", "puts '222'"
|
117
120
|
write "spec/x3_spec.rb", "puts '333'"
|
118
|
-
result = run_tests
|
121
|
+
result = run_tests "spec/x1_spec.rb spec/x3_spec.rb", :type => 'rspec'
|
119
122
|
result.should include('111')
|
120
123
|
result.should include('333')
|
121
124
|
result.should_not include('222')
|
122
125
|
end
|
123
126
|
|
124
127
|
it "runs successfully without any files" do
|
125
|
-
results = run_tests
|
128
|
+
results = run_tests "", :type => 'rspec'
|
126
129
|
results.should include("2 processes for 0 specs")
|
127
130
|
results.should include("Took")
|
128
131
|
end
|
@@ -130,7 +133,10 @@ describe 'CLI' do
|
|
130
133
|
it "can run with test-options" do
|
131
134
|
write "spec/x1_spec.rb", "111"
|
132
135
|
write "spec/x2_spec.rb", "111"
|
133
|
-
result = run_tests
|
136
|
+
result = run_tests "spec",
|
137
|
+
:add => "--test-options ' --version'",
|
138
|
+
:processes => 2,
|
139
|
+
:type => 'rspec'
|
134
140
|
result.should =~ /\d+\.\d+\.\d+.*\d+\.\d+\.\d+/m # prints version twice
|
135
141
|
end
|
136
142
|
|
@@ -139,7 +145,10 @@ describe 'CLI' do
|
|
139
145
|
processes.times{|i|
|
140
146
|
write "spec/x#{i}_spec.rb", "puts %{ENV-\#{ENV['TEST_ENV_NUMBER']}-}"
|
141
147
|
}
|
142
|
-
result = run_tests
|
148
|
+
result = run_tests "spec",
|
149
|
+
:export => "PARALLEL_TEST_PROCESSORS=#{processes}",
|
150
|
+
:processes => processes,
|
151
|
+
:type => 'rspec'
|
143
152
|
result.scan(/ENV-.?-/).should =~ ["ENV--", "ENV-2-", "ENV-3-", "ENV-4-", "ENV-5-"]
|
144
153
|
end
|
145
154
|
|
@@ -147,7 +156,7 @@ describe 'CLI' do
|
|
147
156
|
write "spec/x_spec.rb", "puts 'XXX'"
|
148
157
|
write "spec/y_spec.rb", "puts 'YYY'"
|
149
158
|
write "spec/z_spec.rb", "puts 'ZZZ'"
|
150
|
-
result = run_tests
|
159
|
+
result = run_tests "spec", :add => "-p '^spec/(x|z)'", :type => "rspec"
|
151
160
|
result.should include('XXX')
|
152
161
|
result.should_not include('YYY')
|
153
162
|
result.should include('ZZZ')
|
@@ -156,18 +165,18 @@ describe 'CLI' do
|
|
156
165
|
context "Test::Unit" do
|
157
166
|
it "runs" do
|
158
167
|
write "test/x1_test.rb", "require 'test/unit'; class XTest < Test::Unit::TestCase; def test_xxx; end; end"
|
159
|
-
result = run_tests("test"
|
168
|
+
result = run_tests("test")
|
160
169
|
result.should include('1 test')
|
161
170
|
end
|
162
171
|
|
163
172
|
it "passes test options" do
|
164
173
|
write "test/x1_test.rb", "require 'test/unit'; class XTest < Test::Unit::TestCase; def test_xxx; end; end"
|
165
|
-
result = run_tests("test", :
|
174
|
+
result = run_tests("test", :add => '--test-options "-v"')
|
166
175
|
result.should include('test_xxx') # verbose output of every test
|
167
176
|
end
|
168
177
|
|
169
178
|
it "runs successfully without any files" do
|
170
|
-
results = run_tests(""
|
179
|
+
results = run_tests("")
|
171
180
|
results.should include("2 processes for 0 tests")
|
172
181
|
results.should include("Took")
|
173
182
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parallel_tests
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.0.
|
4
|
+
version: 0.7.0.rc3
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-02-27 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: parallel
|
16
|
-
requirement: &
|
16
|
+
requirement: &15917780 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,12 +21,12 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *15917780
|
25
25
|
description:
|
26
26
|
email: michael@grosser.it
|
27
27
|
executables:
|
28
28
|
- parallel_cucumber
|
29
|
-
-
|
29
|
+
- parallel_rspec
|
30
30
|
- parallel_test
|
31
31
|
extensions: []
|
32
32
|
extra_rdoc_files: []
|
@@ -38,7 +38,7 @@ files:
|
|
38
38
|
- Readme.md
|
39
39
|
- ReadmeRails2.md
|
40
40
|
- bin/parallel_cucumber
|
41
|
-
- bin/
|
41
|
+
- bin/parallel_rspec
|
42
42
|
- bin/parallel_test
|
43
43
|
- lib/parallel_tests.rb
|
44
44
|
- lib/parallel_tests/cli.rb
|
@@ -81,7 +81,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
81
81
|
version: '0'
|
82
82
|
segments:
|
83
83
|
- 0
|
84
|
-
hash:
|
84
|
+
hash: -1571791250058150981
|
85
85
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
86
|
none: false
|
87
87
|
requirements:
|
data/bin/parallel_spec
DELETED