test-queue 0.2.11 → 0.2.12

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile-testunit ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
3
+ gem 'test-unit', '3.0.8'
@@ -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::Rspec` are
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
- CustomMiniTestRunner.new.execute
93
+ MyAppTestRunner.new.execute
94
94
  ```
95
95
 
96
96
  ### distributed mode
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+ require 'test_queue'
3
+ require 'test_queue/runner/testunit'
4
+ ARGV.each{ |f| require(f) }
5
+ TestQueue::Runner::TestUnit.new.execute
@@ -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.11'
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
- bundle install --gemfile=Gemfile-minitest4
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.11
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: 2014-12-20 00:00:00.000000000 Z
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