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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 63e449555d271631ef49690393447ae267535a8c8506874ae3217d1992c51e47
4
- data.tar.gz: 4f434b3bb3a7ca9040836751a0f1c08e198552aeda35956adb9353450b8b01dd
3
+ metadata.gz: e76502939d621b4ad6a7c04a8c2193a5114cff576968e159d27f826ec92d6cea
4
+ data.tar.gz: e82cd1565646bb75f5b2cd733f837ad61d5f852c992e45afa1bbe82a2837854c
5
5
  SHA512:
6
- metadata.gz: 65cb68eb9661a6c6cfe813a41aed60f07962d7ba7b30a2b5ee178cc6c10fce481cfbb82ed83c7e9741dae71dc5d5be954b57f8fe1997c182497e332b5e342102
7
- data.tar.gz: 7ab7dc0e7b758966cec5cb900e7e27d6538aee8639838401bedd781ae5457051085fa587d96c30d8c2e1b0c2a4a005f42af70533fe4464fb8e1956e4f8002271
6
+ metadata.gz: 4d422556e79b8ce13a063943759a25bae14f7a380ba22ecd2e9085b23518d4dabc2f66c6f81920b24d70510dff575d4a8fa9ea5e8a7cdb1af65d5d3ee327f6f7
7
+ data.tar.gz: 5a0177522ed962f7d5e0e95bb36acfee949a4e4227e395dbb36fe2ea2c96fd09bfc976b0066040b4743cd70d13240d23032b12b7a712f2a0ab34e54b8f4bc13e
@@ -2,9 +2,14 @@
2
2
 
3
3
  require 'minitest'
4
4
 
5
- raise 'requires Minitest version 5' unless Minitest::VERSION.to_i == 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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TestQueue
4
- VERSION = '0.11.1'
4
+ VERSION = '0.12.0'
5
5
  end
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.11.1
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: 2023-12-20 00:00:00.000000000 Z
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
- - rspec-queue
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: 3.4.19
65
- signing_key:
63
+ rubygems_version: 4.0.3
66
64
  specification_version: 4
67
65
  summary: parallel test runner
68
66
  test_files: []