test-queue 0.11.1 → 0.12.0
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.
- checksums.yaml +4 -4
- data/lib/test_queue/runner/minitest.rb +8 -3
- data/lib/test_queue/runner/minitest6.rb +107 -0
- data/lib/test_queue/version.rb +1 -1
- metadata +6 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e76502939d621b4ad6a7c04a8c2193a5114cff576968e159d27f826ec92d6cea
|
|
4
|
+
data.tar.gz: e82cd1565646bb75f5b2cd733f837ad61d5f852c992e45afa1bbe82a2837854c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4d422556e79b8ce13a063943759a25bae14f7a380ba22ecd2e9085b23518d4dabc2f66c6f81920b24d70510dff575d4a8fa9ea5e8a7cdb1af65d5d3ee327f6f7
|
|
7
|
+
data.tar.gz: 5a0177522ed962f7d5e0e95bb36acfee949a4e4227e395dbb36fe2ea2c96fd09bfc976b0066040b4743cd70d13240d23032b12b7a712f2a0ab34e54b8f4bc13e
|
|
@@ -2,9 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
require 'minitest'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
require_relative '../runner/minitest5'
|
|
5
|
+
case Minitest::VERSION.to_i
|
|
6
|
+
when 5
|
|
7
|
+
require_relative '../runner/minitest5'
|
|
8
|
+
when 6
|
|
9
|
+
require_relative '../runner/minitest6'
|
|
10
|
+
else
|
|
11
|
+
raise 'requires Minitest version 5 or 6'
|
|
12
|
+
end
|
|
8
13
|
|
|
9
14
|
module TestQueue
|
|
10
15
|
class Runner
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../runner'
|
|
4
|
+
|
|
5
|
+
module Minitest
|
|
6
|
+
def self.run_all_suites(reporter, options)
|
|
7
|
+
suites = Runnable.runnables
|
|
8
|
+
suites.map { |suite| suite.run_suite reporter, options }
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
class Runnable
|
|
12
|
+
def failure_count
|
|
13
|
+
failures.length
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
class Test
|
|
18
|
+
def self.runnables=(runnables)
|
|
19
|
+
@@runnables = runnables
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Synchronize all tests, even serial ones.
|
|
23
|
+
#
|
|
24
|
+
# Minitest runs serial tests before parallel ones to ensure the
|
|
25
|
+
# unsynchronized serial tests don't overlap the parallel tests. But since
|
|
26
|
+
# the test-queue master hands out tests without actually loading their
|
|
27
|
+
# code, there's no way to know which are parallel and which are serial.
|
|
28
|
+
# Synchronizing serial tests does add some overhead, but hopefully this is
|
|
29
|
+
# outweighed by the speed benefits of using test-queue.
|
|
30
|
+
def _synchronize
|
|
31
|
+
Test.io_lock.synchronize { yield }
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
class ProgressReporter
|
|
36
|
+
# Override original method to make test-queue specific output
|
|
37
|
+
def record(result)
|
|
38
|
+
io.print ' '
|
|
39
|
+
io.print result.klass
|
|
40
|
+
io.print ': '
|
|
41
|
+
io.print result.result_code
|
|
42
|
+
io.puts(' <%.3f>' % result.time)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
begin
|
|
47
|
+
require 'minitest/minitest_reporter_plugin'
|
|
48
|
+
|
|
49
|
+
class << self
|
|
50
|
+
private
|
|
51
|
+
|
|
52
|
+
def total_count(_options)
|
|
53
|
+
0
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
rescue LoadError
|
|
57
|
+
# noop
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
module TestQueue
|
|
62
|
+
class Runner
|
|
63
|
+
class Minitest < Runner
|
|
64
|
+
def initialize
|
|
65
|
+
@options = ::Minitest.process_args ARGV
|
|
66
|
+
|
|
67
|
+
if ::Minitest.respond_to?(:seed)
|
|
68
|
+
::Minitest.seed = @options[:seed]
|
|
69
|
+
srand ::Minitest.seed
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
if ::Minitest::Test.runnables.any? { |r| r.runnable_methods.any? }
|
|
73
|
+
raise 'Do not `require` test files. Pass them via ARGV instead and they will be required as needed.'
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
super(TestFramework::Minitest.new)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def start_master
|
|
80
|
+
puts "Run options: #{@options[:args]}\n\n"
|
|
81
|
+
|
|
82
|
+
super
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def run_worker(iterator)
|
|
86
|
+
::Minitest::Test.runnables = iterator
|
|
87
|
+
::Minitest.run ? 0 : 1
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
class TestFramework
|
|
93
|
+
class Minitest < TestFramework
|
|
94
|
+
def all_suite_files
|
|
95
|
+
ARGV
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def suites_from_file(path)
|
|
99
|
+
::Minitest::Test.reset
|
|
100
|
+
require File.absolute_path(path)
|
|
101
|
+
::Minitest::Test.runnables
|
|
102
|
+
.reject { |s| s.runnable_methods.empty? }
|
|
103
|
+
.map { |s| [s.name, s] }
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
data/lib/test_queue/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: test-queue
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.12.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aman Gupta
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies: []
|
|
13
12
|
description: minitest/rspec parallel test runner for CI environments
|
|
14
13
|
email: ruby@tmm1.net
|
|
15
14
|
executables:
|
|
16
|
-
-
|
|
15
|
+
- cucumber-queue
|
|
17
16
|
- minitest-queue
|
|
17
|
+
- rspec-queue
|
|
18
18
|
- testunit-queue
|
|
19
|
-
- cucumber-queue
|
|
20
19
|
extensions: []
|
|
21
20
|
extra_rdoc_files: []
|
|
22
21
|
files:
|
|
@@ -34,6 +33,7 @@ files:
|
|
|
34
33
|
- lib/test_queue/runner/example.rb
|
|
35
34
|
- lib/test_queue/runner/minitest.rb
|
|
36
35
|
- lib/test_queue/runner/minitest5.rb
|
|
36
|
+
- lib/test_queue/runner/minitest6.rb
|
|
37
37
|
- lib/test_queue/runner/puppet_lint.rb
|
|
38
38
|
- lib/test_queue/runner/rspec.rb
|
|
39
39
|
- lib/test_queue/runner/rspec_ext.rb
|
|
@@ -46,7 +46,6 @@ licenses:
|
|
|
46
46
|
- MIT
|
|
47
47
|
metadata:
|
|
48
48
|
rubygems_mfa_required: 'true'
|
|
49
|
-
post_install_message:
|
|
50
49
|
rdoc_options: []
|
|
51
50
|
require_paths:
|
|
52
51
|
- lib
|
|
@@ -61,8 +60,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
61
60
|
- !ruby/object:Gem::Version
|
|
62
61
|
version: '0'
|
|
63
62
|
requirements: []
|
|
64
|
-
rubygems_version:
|
|
65
|
-
signing_key:
|
|
63
|
+
rubygems_version: 4.0.3
|
|
66
64
|
specification_version: 4
|
|
67
65
|
summary: parallel test runner
|
|
68
66
|
test_files: []
|