test-queue 0.2.11 → 0.2.12
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-testunit +3 -0
- data/Gemfile-testunit.lock +44 -0
- data/README.md +3 -3
- data/bin/testunit-queue +5 -0
- data/lib/test_queue/runner/testunit.rb +56 -0
- data/test-queue.gemspec +2 -2
- data/test.sh +7 -1
- data/test/sample_testunit.rb +23 -0
- metadata +8 -18
data/Gemfile-testunit
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
test-queue (0.2.11)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
builder (3.2.2)
|
10
|
+
cucumber (1.3.18)
|
11
|
+
builder (>= 2.1.2)
|
12
|
+
diff-lcs (>= 1.1.3)
|
13
|
+
gherkin (~> 2.12)
|
14
|
+
multi_json (>= 1.7.5, < 2.0)
|
15
|
+
multi_test (>= 0.1.1)
|
16
|
+
diff-lcs (1.2.5)
|
17
|
+
gherkin (2.12.2)
|
18
|
+
multi_json (~> 1.3)
|
19
|
+
multi_json (1.10.1)
|
20
|
+
multi_test (0.1.1)
|
21
|
+
power_assert (0.2.2)
|
22
|
+
rspec (3.1.0)
|
23
|
+
rspec-core (~> 3.1.0)
|
24
|
+
rspec-expectations (~> 3.1.0)
|
25
|
+
rspec-mocks (~> 3.1.0)
|
26
|
+
rspec-core (3.1.7)
|
27
|
+
rspec-support (~> 3.1.0)
|
28
|
+
rspec-expectations (3.1.2)
|
29
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
30
|
+
rspec-support (~> 3.1.0)
|
31
|
+
rspec-mocks (3.1.3)
|
32
|
+
rspec-support (~> 3.1.0)
|
33
|
+
rspec-support (3.1.2)
|
34
|
+
test-unit (3.0.8)
|
35
|
+
power_assert
|
36
|
+
|
37
|
+
PLATFORMS
|
38
|
+
ruby
|
39
|
+
|
40
|
+
DEPENDENCIES
|
41
|
+
cucumber (~> 1.3.10)
|
42
|
+
rspec (>= 2.13, < 4.0)
|
43
|
+
test-queue!
|
44
|
+
test-unit (= 3.0.8)
|
data/README.md
CHANGED
@@ -38,14 +38,14 @@ the workload and relay results back to a central master.
|
|
38
38
|
|
39
39
|
### usage
|
40
40
|
|
41
|
-
test-queue bundles `minitest-queue` and `rspec-queue` binaries which can be used directly:
|
41
|
+
test-queue bundles `testunit-queue`, `minitest-queue` and `rspec-queue` binaries which can be used directly:
|
42
42
|
|
43
43
|
```
|
44
44
|
$ minitest-queue $(find test/ -name \*_test.rb)
|
45
45
|
$ rspec-queue --format progress spec
|
46
46
|
```
|
47
47
|
|
48
|
-
But the underlying `TestQueue::Runner::MiniTest` and `TestQueue::Runner::
|
48
|
+
But the underlying `TestQueue::Runner::TestUnit`, `TestQueue::Runner::MiniTest` and `TestQueue::Runner::RSpec` are
|
49
49
|
built to be subclassed by your application. I recommend checking a new
|
50
50
|
executable into your project using one of these superclasses.
|
51
51
|
|
@@ -90,7 +90,7 @@ class MyAppTestRunner < TestQueue::Runner::MiniTest
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
-
|
93
|
+
MyAppTestRunner.new.execute
|
94
94
|
```
|
95
95
|
|
96
96
|
### distributed mode
|
data/bin/testunit-queue
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'test_queue/runner'
|
2
|
+
|
3
|
+
gem 'test-unit'
|
4
|
+
require 'test/unit'
|
5
|
+
require 'test/unit/collector/descendant'
|
6
|
+
require 'test/unit/testresult'
|
7
|
+
require 'test/unit/testsuite'
|
8
|
+
require 'test/unit/ui/console/testrunner'
|
9
|
+
|
10
|
+
class Test::Unit::TestSuite
|
11
|
+
attr_accessor :iterator
|
12
|
+
|
13
|
+
def run(result, &progress_block)
|
14
|
+
@start_time = Time.now
|
15
|
+
yield(STARTED, name)
|
16
|
+
yield(STARTED_OBJECT, self)
|
17
|
+
run_startup(result)
|
18
|
+
(@iterator || @tests).each do |test|
|
19
|
+
@n_tests += test.size
|
20
|
+
run_test(test, result, &progress_block)
|
21
|
+
@passed = false unless test.passed?
|
22
|
+
end
|
23
|
+
run_shutdown(result)
|
24
|
+
ensure
|
25
|
+
@elapsed_time = Time.now - @start_time
|
26
|
+
yield(FINISHED, name)
|
27
|
+
yield(FINISHED_OBJECT, self)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
module TestQueue
|
32
|
+
class Runner
|
33
|
+
class TestUnit < Runner
|
34
|
+
def initialize
|
35
|
+
@suite = Test::Unit::Collector::Descendant.new.collect
|
36
|
+
tests = @suite.tests.sort_by{ |s| -(stats[s.to_s] || 0) }
|
37
|
+
super(tests)
|
38
|
+
end
|
39
|
+
|
40
|
+
def run_worker(iterator)
|
41
|
+
@suite.iterator = iterator
|
42
|
+
res = Test::Unit::UI::Console::TestRunner.new(@suite).start
|
43
|
+
res.run_count - res.pass_count
|
44
|
+
end
|
45
|
+
|
46
|
+
def summarize_worker(worker)
|
47
|
+
worker.stats.each do |s, val|
|
48
|
+
stats[s.to_s] = val
|
49
|
+
end
|
50
|
+
|
51
|
+
worker.summary = worker.output.split("\n").grep(/^\d+ tests?/).first
|
52
|
+
worker.failure_output = worker.output.scan(/^Failure:\n(.*)\n=======================*/m).join("\n")
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/test-queue.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
spec = Gem::Specification.new do |s|
|
2
2
|
s.name = 'test-queue'
|
3
|
-
s.version = '0.2.
|
3
|
+
s.version = '0.2.12'
|
4
4
|
s.summary = 'parallel test runner'
|
5
5
|
s.description = 'minitest/rspec parallel test runner for CI environments'
|
6
6
|
|
@@ -14,10 +14,10 @@ spec = Gem::Specification.new do |s|
|
|
14
14
|
s.bindir = 'bin'
|
15
15
|
s.executables << 'rspec-queue'
|
16
16
|
s.executables << 'minitest-queue'
|
17
|
+
s.executables << 'testunit-queue'
|
17
18
|
s.executables << 'cucumber-queue'
|
18
19
|
|
19
20
|
s.add_development_dependency 'rspec', '>= 2.13', '< 4.0'
|
20
|
-
s.add_development_dependency 'minitest', '>= 4.7.3'
|
21
21
|
s.add_development_dependency 'cucumber', '~> 1.3.10'
|
22
22
|
|
23
23
|
s.files = `git ls-files`.split("\n")
|
data/test.sh
CHANGED
@@ -3,10 +3,16 @@ set -x
|
|
3
3
|
|
4
4
|
export TEST_QUEUE_WORKERS=2 TEST_QUEUE_VERBOSE=1
|
5
5
|
|
6
|
-
|
6
|
+
export BUNDLE_GEMFILE=Gemfile-testunit
|
7
|
+
bundle install
|
8
|
+
bundle exec testunit-queue ./test/*_testunit.rb
|
9
|
+
|
10
|
+
export BUNDLE_GEMFILE=Gemfile-minitest4
|
11
|
+
bundle install
|
7
12
|
bundle exec minitest-queue ./test/*_minitest4.rb
|
8
13
|
bundle exec minitest-queue ./test/*_minispec.rb
|
9
14
|
|
15
|
+
export BUNDLE_GEMFILE=Gemfile
|
10
16
|
bundle install
|
11
17
|
bundle exec minitest-queue ./test/*_minitest4.rb
|
12
18
|
bundle exec minitest-queue ./test/*_minitest5.rb
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
|
3
|
+
class TestUnitEqual < Test::Unit::TestCase
|
4
|
+
def test_equal
|
5
|
+
assert_equal 1, 1
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
30.times do |i|
|
10
|
+
Object.const_set("TestUnitSleep#{i}", Class.new(Test::Unit::TestCase) do
|
11
|
+
define_method('test_sleep') do
|
12
|
+
start = Time.now
|
13
|
+
sleep(0.25)
|
14
|
+
assert_in_delta Time.now-start, 0.25, 0.02
|
15
|
+
end
|
16
|
+
end)
|
17
|
+
end
|
18
|
+
|
19
|
+
class TestUnitFailure < Test::Unit::TestCase
|
20
|
+
def test_fail
|
21
|
+
assert_equal 0, 1
|
22
|
+
end
|
23
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test-queue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.12
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2015-01-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -33,22 +33,6 @@ dependencies:
|
|
33
33
|
- - <
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: '4.0'
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: minitest
|
38
|
-
requirement: !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
|
-
requirements:
|
41
|
-
- - ! '>='
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: 4.7.3
|
44
|
-
type: :development
|
45
|
-
prerelease: false
|
46
|
-
version_requirements: !ruby/object:Gem::Requirement
|
47
|
-
none: false
|
48
|
-
requirements:
|
49
|
-
- - ! '>='
|
50
|
-
- !ruby/object:Gem::Version
|
51
|
-
version: 4.7.3
|
52
36
|
- !ruby/object:Gem::Dependency
|
53
37
|
name: cucumber
|
54
38
|
requirement: !ruby/object:Gem::Requirement
|
@@ -70,6 +54,7 @@ email: ruby@tmm1.net
|
|
70
54
|
executables:
|
71
55
|
- rspec-queue
|
72
56
|
- minitest-queue
|
57
|
+
- testunit-queue
|
73
58
|
- cucumber-queue
|
74
59
|
extensions: []
|
75
60
|
extra_rdoc_files: []
|
@@ -77,11 +62,14 @@ files:
|
|
77
62
|
- Gemfile
|
78
63
|
- Gemfile-minitest4
|
79
64
|
- Gemfile-minitest4.lock
|
65
|
+
- Gemfile-testunit
|
66
|
+
- Gemfile-testunit.lock
|
80
67
|
- Gemfile.lock
|
81
68
|
- README.md
|
82
69
|
- bin/cucumber-queue
|
83
70
|
- bin/minitest-queue
|
84
71
|
- bin/rspec-queue
|
72
|
+
- bin/testunit-queue
|
85
73
|
- features/bad.feature
|
86
74
|
- features/sample.feature
|
87
75
|
- features/sample2.feature
|
@@ -99,6 +87,7 @@ files:
|
|
99
87
|
- lib/test_queue/runner/rspec2.rb
|
100
88
|
- lib/test_queue/runner/rspec3.rb
|
101
89
|
- lib/test_queue/runner/sample.rb
|
90
|
+
- lib/test_queue/runner/testunit.rb
|
102
91
|
- test-multi.sh
|
103
92
|
- test-queue.gemspec
|
104
93
|
- test.sh
|
@@ -106,6 +95,7 @@ files:
|
|
106
95
|
- test/sample_minitest4.rb
|
107
96
|
- test/sample_minitest5.rb
|
108
97
|
- test/sample_spec.rb
|
98
|
+
- test/sample_testunit.rb
|
109
99
|
homepage: http://github.com/tmm1/test-queue
|
110
100
|
licenses:
|
111
101
|
- MIT
|