test-queue 0.5.0 → 0.6.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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +93 -0
  3. data/.gitignore +5 -0
  4. data/Appraisals +35 -0
  5. data/Gemfile +4 -2
  6. data/README.md +13 -13
  7. data/Rakefile +14 -0
  8. data/{bin → exe}/cucumber-queue +4 -0
  9. data/{bin → exe}/minitest-queue +4 -0
  10. data/{bin → exe}/rspec-queue +4 -0
  11. data/{bin → exe}/testunit-queue +4 -0
  12. data/gemfiles/cucumber1_3.gemfile +9 -0
  13. data/gemfiles/cucumber2_4.gemfile +9 -0
  14. data/gemfiles/minitest4.gemfile +7 -0
  15. data/gemfiles/minitest5.gemfile +7 -0
  16. data/gemfiles/rspec2.gemfile +8 -0
  17. data/gemfiles/rspec3.gemfile +7 -0
  18. data/gemfiles/testunit.gemfile +7 -0
  19. data/lib/test-queue.rb +1 -1
  20. data/lib/test_queue/runner/minitest.rb +2 -2
  21. data/lib/test_queue/runner/minitest4.rb +1 -1
  22. data/lib/test_queue/runner/minitest5.rb +8 -1
  23. data/lib/test_queue/runner/puppet_lint.rb +1 -1
  24. data/lib/test_queue/runner/rspec.rb +6 -1
  25. data/lib/test_queue/runner/sample.rb +2 -2
  26. data/lib/test_queue/runner/testunit.rb +1 -1
  27. data/lib/test_queue/runner.rb +15 -15
  28. data/lib/test_queue.rb +2 -2
  29. data/script/bootstrap +1 -0
  30. data/spec/stats_spec.rb +3 -0
  31. data/test/minitest4.bats +1 -1
  32. data/test/minitest5.bats +5 -5
  33. data/test/{rspec.bats → rspec2.bats} +4 -4
  34. data/test/rspec3.bats +56 -0
  35. data/test/sleepy_runner.rb +3 -1
  36. data/test-queue.gemspec +4 -3
  37. metadata +21 -32
  38. data/.travis.yml +0 -18
  39. data/Gemfile-cucumber1-3 +0 -4
  40. data/Gemfile-cucumber1-3.lock +0 -33
  41. data/Gemfile-cucumber2-4 +0 -4
  42. data/Gemfile-cucumber2-4.lock +0 -37
  43. data/Gemfile-minitest4 +0 -3
  44. data/Gemfile-minitest4.lock +0 -19
  45. data/Gemfile-minitest5 +0 -3
  46. data/Gemfile-minitest5.lock +0 -19
  47. data/Gemfile-rspec2-1 +0 -3
  48. data/Gemfile-rspec2-1.lock +0 -27
  49. data/Gemfile-rspec3-0 +0 -3
  50. data/Gemfile-rspec3-0.lock +0 -31
  51. data/Gemfile-rspec3-1 +0 -3
  52. data/Gemfile-rspec3-1.lock +0 -31
  53. data/Gemfile-rspec3-2 +0 -3
  54. data/Gemfile-rspec3-2.lock +0 -32
  55. data/Gemfile-testunit +0 -3
  56. data/Gemfile-testunit.lock +0 -21
  57. data/Gemfile.lock +0 -41
  58. data/script/cibuild +0 -19
  59. data/script/spec +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c32b025eec2391d8523ce84f4f180443b09f003f8770b8b27ff741aac464629
4
- data.tar.gz: 6a18a116cba1ec57617f92405a5d4554dab34dc5ab41be6ed10825b9c8b9f503
3
+ metadata.gz: f689a4cffa234a32b4e3919fe2f263258cd32682925c29d59e26fdd0a8218236
4
+ data.tar.gz: 5e2f51214fa2dfcc184386fc588767f7ce15ac9738de0a3c8a730aed33995669
5
5
  SHA512:
6
- metadata.gz: c7be91c62fc0e8f47826b441ed36f08ce454caf53bb56af03b11a3f7ed0eb88028ecb7ec96b03baf413ef985401292fee055561e876012c88e7e63fc7007ae00
7
- data.tar.gz: 27e6d8fbaf61bf96beede058ad5a25ae8695a88fb3ce3d14ba96666e8da2b1df066574aa7efa0f9bcd5cbd619d1825a0a8c4f4cbe20f0eb312b2f9692f7a3d49
6
+ metadata.gz: 1f76dbac0466294ffca4a780f7c411611cba1c55006a22343bdc11d789e400b135d4457c889d591498ede4ec92dd12ce615239f3569667b061117729e2e61fbc
7
+ data.tar.gz: a9666ce78f35e7d1a4cf3f877782ef86b7909396fb12f27c6df883f483ff07907db6b3a9ced68c2f36eae55b2d3f28c9ed3699df3b4ed9a1fc9151b9147306a8
@@ -0,0 +1,93 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+
9
+ jobs:
10
+ main:
11
+ name: >-
12
+ ${{ matrix.ruby }} ${{ matrix.entry.name }}
13
+ runs-on: ${{ matrix.os }}-latest
14
+ env:
15
+ TEST_QUEUE_WORKERS: 2
16
+ TEST_QUEUE_VERBOSE: 1
17
+ strategy:
18
+ fail-fast: false
19
+ matrix:
20
+ os: [ubuntu]
21
+ # Lowest and Latest version.
22
+ ruby: ['2.7', '3.2']
23
+ entry:
24
+ - { name: cucumber1_3, bats: test/cucumber.bats }
25
+ - { name: cucumber2_4, bats: test/cucumber.bats }
26
+ - { name: minitest4, bats: test/minitest4.bats }
27
+ - { name: minitest5, bats: test/minitest5.bats }
28
+ - { name: rspec3, bats: test/rspec3.bats }
29
+ - { name: testunit, bats: test/testunit.bats }
30
+
31
+ steps:
32
+ - name: checkout
33
+ uses: actions/checkout@v3
34
+ - name: set up Ruby
35
+ uses: ruby/setup-ruby@v1
36
+ with:
37
+ ruby-version: ${{ matrix.ruby }}
38
+
39
+ - name: install dependencies
40
+ run: bundle install --jobs 3 --retry 3
41
+ - name: setup for Bats
42
+ run: bundle exec rake setup
43
+ - name: spec
44
+ run: bundle exec rake spec
45
+ - name: install dependencies for ${{ matrix.entry.name }}
46
+ run: BUNDLE_GEMFILE=gemfiles/${{ matrix.entry.name }}.gemfile bundle install --jobs 3 --retry 3
47
+ - name: test
48
+ run: BUNDLE_GEMFILE=gemfiles/${{ matrix.entry.name }}.gemfile vendor/bats/bin/bats ${{ matrix.entry.bats }}
49
+
50
+ # RSpec 2 doesn't work with Ruby 3.2:
51
+ #
52
+ # /opt/hostedtoolcache/Ruby/3.2.1/x64/lib/ruby/gems/3.2.0/gems/rspec-core-2.99.2/lib/rspec/core/ruby_project.rb:27:
53
+ # in `block in find_first_parent_containing': undefined method `exists?' for File:Class (NoMethodError)
54
+ #
55
+ # ascend_until {|path| File.exists?(File.join(path, dir))}
56
+ # ^^^^^^^^
57
+ # Did you mean? exist?
58
+ #
59
+ # Up to Ruby 3.1 is the supported version for RSpec 2.
60
+ rspec2:
61
+ name: >-
62
+ ${{ matrix.ruby }} ${{ matrix.entry.name }}
63
+ runs-on: ${{ matrix.os }}-latest
64
+ env:
65
+ TEST_QUEUE_WORKERS: 2
66
+ TEST_QUEUE_VERBOSE: 1
67
+ strategy:
68
+ fail-fast: false
69
+ matrix:
70
+ os: [ubuntu]
71
+ # Lowest and Latest version.
72
+ ruby: ['2.7', '3.1']
73
+ entry:
74
+ - { name: rspec2, bats: test/rspec2.bats }
75
+
76
+ steps:
77
+ - name: checkout
78
+ uses: actions/checkout@v3
79
+ - name: set up Ruby
80
+ uses: ruby/setup-ruby@v1
81
+ with:
82
+ ruby-version: ${{ matrix.ruby }}
83
+
84
+ - name: install dependencies
85
+ run: bundle install --jobs 3 --retry 3
86
+ - name: setup for Bats
87
+ run: bundle exec rake setup
88
+ - name: spec
89
+ run: bundle exec rake spec
90
+ - name: install dependencies for ${{ matrix.entry.name }}
91
+ run: BUNDLE_GEMFILE=gemfiles/${{ matrix.entry.name }}.gemfile bundle install --jobs 3 --retry 3
92
+ - name: test
93
+ run: BUNDLE_GEMFILE=gemfiles/${{ matrix.entry.name }}.gemfile vendor/bats/bin/bats ${{ matrix.entry.bats }}
data/.gitignore CHANGED
@@ -1 +1,6 @@
1
1
  .test_queue_stats
2
+ .ruby-version
3
+ Gemfile.lock
4
+ gemfiles/.bundle/
5
+ *.gemfile.lock
6
+ vendor
data/Appraisals ADDED
@@ -0,0 +1,35 @@
1
+ appraise "cucumber1-3" do
2
+ gem 'cucumber', '~> 1.3.10'
3
+ # Pin Rake version to Prevent `NoMethodError: undefined method `last_comment'`.
4
+ gem 'rake', '< 11.0'
5
+ end
6
+
7
+ appraise "cucumber2-4" do
8
+ gem 'cucumber', '~> 2.4.0'
9
+ # Pin Rake version to Prevent `NoMethodError: undefined method `last_comment'`.
10
+ gem 'rake', '< 11.0'
11
+ end
12
+
13
+ appraise "minitest4" do
14
+ gem 'rake'
15
+ gem 'minitest', '~> 4.7'
16
+ end
17
+
18
+ appraise "minitest5" do
19
+ gem 'rake'
20
+ gem 'minitest', '5.10.0'
21
+ end
22
+
23
+ appraise "rspec2" do
24
+ # Pin Rake version to Prevent `NoMethodError: undefined method `last_comment'`.
25
+ gem 'rake', '< 11.0'
26
+ gem 'rspec', '~> 2.99'
27
+ end
28
+
29
+ appraise "rspec3" do
30
+ gem 'rspec', '~> 3.12'
31
+ end
32
+
33
+ appraise "testunit" do
34
+ gem 'test-unit'
35
+ end
data/Gemfile CHANGED
@@ -1,5 +1,7 @@
1
1
  source 'https://rubygems.org'
2
+
2
3
  gemspec
3
- gem 'minitest', '5.3.3'
4
+
5
+ gem 'appraisal'
6
+ gem 'rake'
4
7
  gem 'rspec', '>= 2.13', '< 4.0'
5
- gem 'cucumber', '~> 1.3.10'
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
- ## test-queue
1
+ # test-queue
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/test-queue.svg)](https://rubygems.org/gems/test-queue)
4
- [![Build Status](https://travis-ci.org/tmm1/test-queue.svg?branch=master)](https://travis-ci.org/tmm1/test-queue)
4
+ [![CI](https://github.com/tmm1/test-queue/actions/workflows/test.yml/badge.svg)](https://github.com/tmm1/test-queue/actions/workflows/test.yml)
5
5
 
6
6
  Yet another parallel test runner, built using a centralized queue to ensure
7
7
  optimal distribution of tests between workers.
@@ -10,13 +10,13 @@ Specifically optimized for CI environments: build statistics from each run
10
10
  are stored locally and used to sort the queue at the beginning of the
11
11
  next run.
12
12
 
13
- ### design
13
+ ## Design
14
14
 
15
15
  test-queue uses a simple master + pre-fork worker model. The master
16
16
  exposes a unix domain socket server which workers use to grab tests off
17
17
  the queue.
18
18
 
19
- ```
19
+ ```console
20
20
  ─┬─ 21232 minitest-queue master
21
21
  ├─── 21571 minitest-queue worker [3] - AuthenticationTest
22
22
  ├─── 21568 minitest-queue worker [2] - ApiTest
@@ -27,7 +27,7 @@ the queue.
27
27
  test-queue also has a distributed mode, where additional masters can share
28
28
  the workload and relay results back to a central master.
29
29
 
30
- ### environment variables
30
+ ## Environment variables
31
31
 
32
32
  - `TEST_QUEUE_WORKERS`: number of workers to use per master (default: all available cores)
33
33
  - `TEST_QUEUE_VERBOSE`: show results as they are available (default: `0`)
@@ -40,11 +40,11 @@ the workload and relay results back to a central master.
40
40
  - `TEST_QUEUE_REMOTE_MASTER_MESSAGE`: when using distributed builds, set this on a remote master and it will appear in that master's connection message on the central master.
41
41
  - `TEST_QUEUE_SPLIT_GROUPS`: split tests up by example rather than example group. Faster for tests with short setup time such as selenium. RSpec only. Add the :no_split tag to ExampleGroups you don't want split.
42
42
 
43
- ### usage
43
+ ## Usage
44
44
 
45
45
  test-queue bundles `testunit-queue`, `minitest-queue` and `rspec-queue` binaries which can be used directly:
46
46
 
47
- ```
47
+ ```console
48
48
  $ minitest-queue $(find test/ -name \*_test.rb)
49
49
  $ rspec-queue --format progress spec
50
50
  ```
@@ -53,7 +53,7 @@ But the underlying `TestQueue::Runner::TestUnit`, `TestQueue::Runner::MiniTest`
53
53
  built to be subclassed by your application. I recommend checking a new
54
54
  executable into your project using one of these superclasses.
55
55
 
56
- ```
56
+ ```console
57
57
  $ vim script/test-queue
58
58
  $ chmod +x script/test-queue
59
59
  $ git add script/test-queue
@@ -69,7 +69,7 @@ runner to reset any global state.
69
69
  class MyAppTestRunner < TestQueue::Runner::MiniTest
70
70
  def after_fork(num)
71
71
  # use separate mysql database (we assume it exists and has the right schema already)
72
- ActiveRecord::Base.configurations['test']['database'] << num.to_s
72
+ ActiveRecord::Base.configurations.configs_for(env_name: 'test', name: 'primary').database << num.to_s
73
73
  ActiveRecord::Base.establish_connection(:test)
74
74
 
75
75
  # use separate redis database
@@ -97,13 +97,13 @@ end
97
97
  MyAppTestRunner.new.execute
98
98
  ```
99
99
 
100
- ### distributed mode
100
+ ## Distributed mode
101
101
 
102
102
  To use distributed mode, the central master must listen on a tcp port. Additional masters can be booted
103
- in relay mode to connect to the central master. Remote masters must provide a TEST_QUEUE_RELAY_TOKEN
103
+ in relay mode to connect to the central master. Remote masters must provide a `TEST_QUEUE_RELAY_TOKEN`
104
104
  to match the central master's.
105
105
 
106
- ```
106
+ ```console
107
107
  $ TEST_QUEUE_RELAY_TOKEN=123 TEST_QUEUE_SOCKET=0.0.0.0:12345 bundle exec minitest-queue ./test/sample_test.rb
108
108
  $ TEST_QUEUE_RELAY_TOKEN=123 TEST_QUEUE_RELAY=0.0.0.0:12345 bundle exec minitest-queue ./test/sample_test.rb
109
109
  $ TEST_QUEUE_RELAY_TOKEN=123 ./test-multi.sh
@@ -112,7 +112,7 @@ $ TEST_QUEUE_RELAY_TOKEN=123 ./test-multi.sh
112
112
  See the [Parameterized Trigger Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin)
113
113
  for a simple way to do this with jenkins.
114
114
 
115
- ### see also
115
+ ## See also
116
116
 
117
117
  * https://github.com/Shopify/rails_parallel
118
118
  * https://github.com/grosser/parallel_tests
data/Rakefile ADDED
@@ -0,0 +1,14 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => [:setup, :spec, :feature]
7
+
8
+ task :setup do
9
+ sh 'script/bootstrap' unless File.exist?("#{Dir.pwd}/vendor/bats/bin/bats")
10
+ end
11
+
12
+ task :feature do
13
+ sh 'TEST_QUEUE_WORKERS=2 TEST_QUEUE_VERBOSE=1 vendor/bats/bin/bats test'
14
+ end
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
4
+
2
5
  require 'test_queue'
3
6
  require 'test_queue/runner/cucumber'
7
+
4
8
  TestQueue::Runner::Cucumber.new.execute
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
4
+
2
5
  require 'test_queue'
3
6
  require 'test_queue/runner/minitest'
7
+
4
8
  TestQueue::Runner::MiniTest.new.execute
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
4
+
2
5
  require 'test_queue'
3
6
  require 'test_queue/runner/rspec'
7
+
4
8
  TestQueue::Runner::RSpec.new.execute
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
4
+
2
5
  require 'test_queue'
3
6
  require 'test_queue/runner/testunit'
7
+
4
8
  TestQueue::Runner::TestUnit.new.execute
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake", "< 11.0"
6
+ gem "rspec", ">= 2.13", "< 4.0"
7
+ gem "cucumber", "~> 1.3.10"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake", "< 11.0"
6
+ gem "rspec", ">= 2.13", "< 4.0"
7
+ gem "cucumber", "~> 2.4.0"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "minitest", "~> 4.7"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "minitest", "5.10.0"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake", "< 11.0"
6
+ gem "rspec", "~> 2.99"
7
+
8
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rspec", "~> 3.12"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "test-unit"
6
+
7
+ gemspec path: "../"
data/lib/test-queue.rb CHANGED
@@ -1 +1 @@
1
- require 'test_queue'
1
+ require_relative 'test_queue'
@@ -1,9 +1,9 @@
1
1
  begin
2
2
  require 'minitest'
3
- require 'test_queue/runner/minitest5'
3
+ require_relative '../runner/minitest5'
4
4
  rescue LoadError => e
5
5
  require 'minitest/unit'
6
- require 'test_queue/runner/minitest4'
6
+ require_relative '../runner/minitest4'
7
7
  end
8
8
 
9
9
  module TestQueue
@@ -1,4 +1,4 @@
1
- require 'test_queue/runner'
1
+ require_relative '../runner'
2
2
  require 'set'
3
3
  require 'stringio'
4
4
 
@@ -1,4 +1,4 @@
1
- require 'test_queue/runner'
1
+ require_relative '../runner'
2
2
 
3
3
  module MiniTest
4
4
  def self.__run reporter, options
@@ -56,6 +56,13 @@ module TestQueue
56
56
  class Runner
57
57
  class MiniTest < Runner
58
58
  def initialize
59
+ options = Minitest.process_args ARGV
60
+
61
+ if Minitest.respond_to?(:seed)
62
+ Minitest.seed = options[:seed]
63
+ srand Minitest.seed
64
+ end
65
+
59
66
  if ::MiniTest::Test.runnables.any? { |r| r.runnable_methods.any? }
60
67
  fail "Do not `require` test files. Pass them via ARGV instead and they will be required as needed."
61
68
  end
@@ -1,4 +1,4 @@
1
- require 'test_queue'
1
+ require_relative '../../test_queue'
2
2
  require 'puppet-lint'
3
3
 
4
4
  module TestQueue
@@ -1,4 +1,4 @@
1
- require 'test_queue/runner'
1
+ require_relative '../runner'
2
2
  require 'rspec/core'
3
3
 
4
4
  case ::RSpec::Core::Version::STRING.to_i
@@ -36,6 +36,11 @@ module TestQueue
36
36
  options.parse_options if options.respond_to?(:parse_options)
37
37
  options.configure(::RSpec.configuration)
38
38
 
39
+ if ::RSpec.configuration.instance_variable_defined?(:@files_or_directories_to_run) &&
40
+ ::RSpec.configuration.instance_variable_get(:@files_or_directories_to_run).empty?
41
+ ::RSpec.configuration.instance_variable_set(:@files_or_directories_to_run, [::RSpec.configuration.default_path])
42
+ end
43
+
39
44
  ::RSpec.configuration.files_to_run.uniq
40
45
  end
41
46
 
@@ -1,5 +1,5 @@
1
- require 'test_queue'
2
- require 'test_queue/runner'
1
+ require_relative '../../test_queue'
2
+ require_relative '../runner'
3
3
 
4
4
  module TestQueue
5
5
  class Runner
@@ -1,4 +1,4 @@
1
- require 'test_queue/runner'
1
+ require_relative '../runner'
2
2
 
3
3
  gem 'test-unit'
4
4
  require 'test/unit'
@@ -2,8 +2,8 @@ require 'set'
2
2
  require 'socket'
3
3
  require 'fileutils'
4
4
  require 'securerandom'
5
- require 'test_queue/stats'
6
- require 'test_queue/test_framework'
5
+ require_relative 'stats'
6
+ require_relative 'test_framework'
7
7
 
8
8
  module TestQueue
9
9
  class Worker
@@ -48,12 +48,12 @@ module TestQueue
48
48
 
49
49
  @procline = $0
50
50
 
51
- @whitelist = if forced = ENV['TEST_QUEUE_FORCE']
51
+ @allowlist = if forced = ENV['TEST_QUEUE_FORCE']
52
52
  forced.split(/\s*,\s*/)
53
53
  else
54
54
  []
55
55
  end
56
- @whitelist.freeze
56
+ @allowlist.freeze
57
57
 
58
58
  all_files = @test_framework.all_suite_files.to_set
59
59
  @queue = @stats.all_suites
@@ -61,12 +61,12 @@ module TestQueue
61
61
  .sort_by { |suite| -suite.duration }
62
62
  .map { |suite| [suite.name, suite.path] }
63
63
 
64
- if @whitelist.any?
65
- @queue.select! { |suite_name, path| @whitelist.include?(suite_name) }
66
- @queue.sort_by! { |suite_name, path| @whitelist.index(suite_name) }
64
+ if @allowlist.any?
65
+ @queue.select! { |suite_name, path| @allowlist.include?(suite_name) }
66
+ @queue.sort_by! { |suite_name, path| @allowlist.index(suite_name) }
67
67
  end
68
68
 
69
- @awaited_suites = Set.new(@whitelist)
69
+ @awaited_suites = Set.new(@allowlist)
70
70
  @original_queue = Set.new(@queue).freeze
71
71
 
72
72
  @workers = {}
@@ -318,9 +318,9 @@ module TestQueue
318
318
  # distributes them to remote masters.
319
319
  return if relay?
320
320
 
321
- # No need to discover suites if all whitelisted suites are already
321
+ # No need to discover suites if all allowlisted suites are already
322
322
  # queued.
323
- return if @whitelist.any? && @awaited_suites.empty?
323
+ return if @allowlist.any? && @awaited_suites.empty?
324
324
 
325
325
  @discovering_suites_pid = fork do
326
326
  terminate = false
@@ -346,7 +346,7 @@ module TestQueue
346
346
  def awaiting_suites?
347
347
  case
348
348
  when @awaited_suites.any?
349
- # We're waiting to find all the whitelisted suites so we can run them
349
+ # We're waiting to find all the allowlisted suites so we can run them
350
350
  # in the correct order.
351
351
  true
352
352
  when @queue.empty? && !!@discovering_suites_pid
@@ -359,7 +359,7 @@ module TestQueue
359
359
  end
360
360
 
361
361
  def enqueue_discovered_suite(suite_name, path)
362
- if @whitelist.any? && !@whitelist.include?(suite_name)
362
+ if @allowlist.any? && !@allowlist.include?(suite_name)
363
363
  return
364
364
  end
365
365
 
@@ -377,9 +377,9 @@ module TestQueue
377
377
  @queue.unshift [suite_name, path]
378
378
 
379
379
  if @awaited_suites.delete?(suite_name) && @awaited_suites.empty?
380
- # We've found all the whitelisted suites. Sort the queue to match the
381
- # whitelist.
382
- @queue.sort_by! { |suite_name, path| @whitelist.index(suite_name) }
380
+ # We've found all the allowlisted suites. Sort the queue to match the
381
+ # allowlist.
382
+ @queue.sort_by! { |suite_name, path| @allowlist.index(suite_name) }
383
383
 
384
384
  kill_suite_discovery_process("INT")
385
385
  end
data/lib/test_queue.rb CHANGED
@@ -4,5 +4,5 @@ if !IO.respond_to?(:binread)
4
4
  end
5
5
  end
6
6
 
7
- require 'test_queue/iterator'
8
- require 'test_queue/runner'
7
+ require_relative 'test_queue/iterator'
8
+ require_relative 'test_queue/runner'
data/script/bootstrap CHANGED
@@ -10,3 +10,4 @@ mkdir tmp
10
10
  mkdir -p vendor/bats
11
11
  curl --silent --location --show-error https://github.com/sstephenson/bats/archive/v0.4.0.tar.gz | tar -xz -C tmp
12
12
  tmp/bats-0.4.0/install.sh "$ROOT/vendor/bats"
13
+ rm -rf tmp
data/spec/stats_spec.rb CHANGED
@@ -1,5 +1,8 @@
1
1
  require "fileutils"
2
2
  require "tempfile"
3
+
4
+ $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
5
+
3
6
  require "test_queue/stats"
4
7
 
5
8
  RSpec.describe TestQueue::Stats do
data/test/minitest4.bats CHANGED
@@ -1,7 +1,7 @@
1
1
  load "testlib"
2
2
 
3
3
  setup() {
4
- require_gem "minitest" ">= 4.0"
4
+ require_gem "minitest" "~> 4.0"
5
5
  }
6
6
 
7
7
  @test "minitest-queue succeeds when all tests pass" {
data/test/minitest5.bats CHANGED
@@ -3,7 +3,7 @@ load "testlib"
3
3
  SCRATCH=tmp/minitest5-tests
4
4
 
5
5
  setup() {
6
- require_gem "minitest" ">= 5.0"
6
+ require_gem "minitest" "~> 5.0"
7
7
  rm -rf $SCRATCH
8
8
  mkdir -p $SCRATCH
9
9
  }
@@ -27,12 +27,12 @@ teardown() {
27
27
  assert_output_contains "MiniTestFailure#test_fail"
28
28
  }
29
29
 
30
- @test "TEST_QUEUE_FORCE whitelists certain tests" {
31
- export TEST_QUEUE_WORKERS=1 TEST_QUEUE_FORCE="MiniTestSleep21,MiniTestSleep8"
30
+ @test "TEST_QUEUE_FORCE allowlists certain tests" {
31
+ export TEST_QUEUE_WORKERS=1 TEST_QUEUE_FORCE="MiniTestSleep11,MiniTestSleep8"
32
32
  run bundle exec minitest-queue ./test/samples/*_minitest5.rb
33
33
  assert_status 0
34
34
  assert_output_contains "Starting test-queue master"
35
- assert_output_contains "MiniTestSleep21"
35
+ assert_output_contains "MiniTestSleep11"
36
36
  assert_output_contains "MiniTestSleep8"
37
37
  refute_output_contains "MiniTestSleep9"
38
38
  }
@@ -68,7 +68,7 @@ assert_test_queue_force_ordering() {
68
68
  }
69
69
 
70
70
  @test "minitest-queue fails if TEST_QUEUE_FORCE specifies nonexistent tests" {
71
- export TEST_QUEUE_WORKERS=1 TEST_QUEUE_FORCE="MiniTestSleep21,DoesNotExist"
71
+ export TEST_QUEUE_WORKERS=1 TEST_QUEUE_FORCE="MiniTestSleep11,DoesNotExist"
72
72
  run bundle exec minitest-queue ./test/samples/*_minitest5.rb
73
73
  assert_status 1
74
74
  assert_output_contains "Failed to discover DoesNotExist specified in TEST_QUEUE_FORCE"
@@ -1,7 +1,7 @@
1
1
  load "testlib"
2
2
 
3
3
  setup() {
4
- require_gem "rspec" ">= 2.0"
4
+ require_gem "rspec" "~> 2.0"
5
5
  }
6
6
 
7
7
  @test "rspec-queue succeeds when all specs pass" {
@@ -15,7 +15,9 @@ setup() {
15
15
  run bundle exec rspec-queue ./test/samples/sample_spec.rb
16
16
  assert_status 1
17
17
  assert_output_contains "1) RSpecFailure fails"
18
- assert_output_contains "Failure/Error: expect(:foo).to eq :bar"
18
+ assert_output_contains "RSpecFailure fails"
19
+ assert_output_contains "expected: :bar"
20
+ assert_output_contains "got: :foo"
19
21
  }
20
22
 
21
23
  @test "TEST_QUEUE_SPLIT_GROUPS splits splittable groups" {
@@ -41,6 +43,4 @@ setup() {
41
43
  run bundle exec rspec-queue ./test/samples/sample_use_shared_example1_spec.rb \
42
44
  ./test/samples/sample_use_shared_example2_spec.rb
43
45
  assert_status 0
44
-
45
46
  }
46
-
data/test/rspec3.bats ADDED
@@ -0,0 +1,56 @@
1
+ load "testlib"
2
+
3
+ setup() {
4
+ require_gem "rspec" "~> 3.0"
5
+ }
6
+
7
+ @test "rspec-queue succeeds when all specs pass" {
8
+ run bundle exec rspec-queue ./test/samples/sample_spec.rb
9
+ assert_status 0
10
+ assert_output_contains "Starting test-queue master"
11
+ assert_output_contains "16 examples, 0 failures"
12
+ assert_output_contains "16 examples, 0 failures"
13
+ }
14
+
15
+ @test "rspec-queue succeeds all specs pass in the default spec directory even if directory path is omitted" {
16
+ run bundle exec rspec-queue
17
+ assert_status 0
18
+ assert_output_contains "Starting test-queue master"
19
+ assert_output_contains "6 examples, 0 failures"
20
+ assert_output_contains "0 examples, 0 failures"
21
+ }
22
+
23
+ @test "rspec-queue fails when a spec fails" {
24
+ export FAIL=1
25
+ run bundle exec rspec-queue ./test/samples/sample_spec.rb
26
+ assert_status 1
27
+ assert_output_contains "1) RSpecFailure fails"
28
+ assert_output_contains "RSpecFailure fails"
29
+ assert_output_contains "expected: :bar"
30
+ assert_output_contains "got: :foo"
31
+ }
32
+
33
+ @test "TEST_QUEUE_SPLIT_GROUPS splits splittable groups" {
34
+ export TEST_QUEUE_SPLIT_GROUPS=true
35
+ run bundle exec rspec-queue ./test/samples/sample_split_spec.rb
36
+ assert_status 0
37
+
38
+ assert_output_matches '\[ 1\] +1 example, 0 failures'
39
+ assert_output_matches '\[ 2\] +1 example, 0 failures'
40
+ }
41
+
42
+ @test "TEST_QUEUE_SPLIT_GROUPS does not split unsplittable groups" {
43
+ export TEST_QUEUE_SPLIT_GROUPS=true
44
+ export NOSPLIT=1
45
+ run bundle exec rspec-queue ./test/samples/sample_split_spec.rb
46
+ assert_status 0
47
+
48
+ assert_output_contains "2 examples, 0 failures"
49
+ assert_output_contains "0 examples, 0 failures"
50
+ }
51
+
52
+ @test "rspec-queue supports shared example groups" {
53
+ run bundle exec rspec-queue ./test/samples/sample_use_shared_example1_spec.rb \
54
+ ./test/samples/sample_use_shared_example2_spec.rb
55
+ assert_status 0
56
+ }
@@ -1,9 +1,11 @@
1
+ $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
2
+
1
3
  require 'test_queue'
2
4
  require 'test_queue/runner/minitest'
3
5
 
4
6
  class SleepyTestRunner < TestQueue::Runner::MiniTest
5
7
  def after_fork(num)
6
- if ENV['SLEEP_AS_RELAY'] && relay?
8
+ if ENV['SLEEP_AS_RELAY'] && relay?
7
9
  sleep 5
8
10
  elsif ENV['SLEEP_AS_MASTER'] && !relay?
9
11
  sleep 5
data/test-queue.gemspec CHANGED
@@ -1,6 +1,7 @@
1
- spec = Gem::Specification.new do |s|
1
+ Gem::Specification.new do |s|
2
2
  s.name = 'test-queue'
3
- s.version = '0.5.0'
3
+ s.version = '0.6.0'
4
+ s.required_ruby_version = '>= 2.7.0'
4
5
  s.summary = 'parallel test runner'
5
6
  s.description = 'minitest/rspec parallel test runner for CI environments'
6
7
 
@@ -10,7 +11,7 @@ spec = Gem::Specification.new do |s|
10
11
  s.email = "ruby@tmm1.net"
11
12
  s.license = 'MIT'
12
13
 
13
- s.bindir = 'bin'
14
+ s.bindir = 'exe'
14
15
  s.executables << 'rspec-queue'
15
16
  s.executables << 'minitest-queue'
16
17
  s.executables << 'testunit-queue'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test-queue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aman Gupta
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-16 00:00:00.000000000 Z
11
+ date: 2023-04-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: minitest/rspec parallel test runner for CI environments
14
14
  email: ruby@tmm1.net
@@ -20,34 +20,24 @@ executables:
20
20
  extensions: []
21
21
  extra_rdoc_files: []
22
22
  files:
23
+ - ".github/workflows/test.yml"
23
24
  - ".gitignore"
24
- - ".travis.yml"
25
+ - Appraisals
25
26
  - Gemfile
26
- - Gemfile-cucumber1-3
27
- - Gemfile-cucumber1-3.lock
28
- - Gemfile-cucumber2-4
29
- - Gemfile-cucumber2-4.lock
30
- - Gemfile-minitest4
31
- - Gemfile-minitest4.lock
32
- - Gemfile-minitest5
33
- - Gemfile-minitest5.lock
34
- - Gemfile-rspec2-1
35
- - Gemfile-rspec2-1.lock
36
- - Gemfile-rspec3-0
37
- - Gemfile-rspec3-0.lock
38
- - Gemfile-rspec3-1
39
- - Gemfile-rspec3-1.lock
40
- - Gemfile-rspec3-2
41
- - Gemfile-rspec3-2.lock
42
- - Gemfile-testunit
43
- - Gemfile-testunit.lock
44
- - Gemfile.lock
45
27
  - LICENSE
46
28
  - README.md
47
- - bin/cucumber-queue
48
- - bin/minitest-queue
49
- - bin/rspec-queue
50
- - bin/testunit-queue
29
+ - Rakefile
30
+ - exe/cucumber-queue
31
+ - exe/minitest-queue
32
+ - exe/rspec-queue
33
+ - exe/testunit-queue
34
+ - gemfiles/cucumber1_3.gemfile
35
+ - gemfiles/cucumber2_4.gemfile
36
+ - gemfiles/minitest4.gemfile
37
+ - gemfiles/minitest5.gemfile
38
+ - gemfiles/rspec2.gemfile
39
+ - gemfiles/rspec3.gemfile
40
+ - gemfiles/testunit.gemfile
51
41
  - lib/test-queue.rb
52
42
  - lib/test_queue.rb
53
43
  - lib/test_queue/iterator.rb
@@ -65,14 +55,13 @@ files:
65
55
  - lib/test_queue/stats.rb
66
56
  - lib/test_queue/test_framework.rb
67
57
  - script/bootstrap
68
- - script/cibuild
69
- - script/spec
70
58
  - spec/stats_spec.rb
71
59
  - test-queue.gemspec
72
60
  - test/cucumber.bats
73
61
  - test/minitest4.bats
74
62
  - test/minitest5.bats
75
- - test/rspec.bats
63
+ - test/rspec2.bats
64
+ - test/rspec3.bats
76
65
  - test/samples/features/bad.feature
77
66
  - test/samples/features/sample.feature
78
67
  - test/samples/features/sample2.feature
@@ -102,14 +91,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
102
91
  requirements:
103
92
  - - ">="
104
93
  - !ruby/object:Gem::Version
105
- version: '0'
94
+ version: 2.7.0
106
95
  required_rubygems_version: !ruby/object:Gem::Requirement
107
96
  requirements:
108
97
  - - ">="
109
98
  - !ruby/object:Gem::Version
110
99
  version: '0'
111
100
  requirements: []
112
- rubygems_version: 3.3.3
101
+ rubygems_version: 3.4.6
113
102
  signing_key:
114
103
  specification_version: 4
115
104
  summary: parallel test runner
data/.travis.yml DELETED
@@ -1,18 +0,0 @@
1
- language: ruby
2
- install: script/bootstrap
3
- rvm:
4
- - 2.2
5
- env:
6
- - SUITE=ruby
7
- - SUITE=cucumber1-3
8
- - SUITE=cucumber2-4
9
- - SUITE=minitest4
10
- - SUITE=minitest5
11
- - SUITE=rspec2-1
12
- - SUITE=rspec3-0
13
- - SUITE=rspec3-1
14
- - SUITE=rspec3-2
15
- - SUITE=testunit
16
- script: script/cibuild
17
- notifications:
18
- email: false
data/Gemfile-cucumber1-3 DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
- gem 'cucumber', '~> 1.3.10'
4
- gem 'rspec-expectations', '~> 2.14.4'
@@ -1,33 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- test-queue (0.5.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- builder (3.2.2)
10
- cucumber (1.3.20)
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.2)
16
- diff-lcs (1.2.5)
17
- gherkin (2.12.2)
18
- multi_json (~> 1.3)
19
- multi_json (1.12.1)
20
- multi_test (0.1.2)
21
- rspec-expectations (2.14.5)
22
- diff-lcs (>= 1.1.3, < 2.0)
23
-
24
- PLATFORMS
25
- ruby
26
-
27
- DEPENDENCIES
28
- cucumber (~> 1.3.10)
29
- rspec-expectations (~> 2.14.4)
30
- test-queue!
31
-
32
- BUNDLED WITH
33
- 1.13.1
data/Gemfile-cucumber2-4 DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
- gem 'cucumber', '2.4.0'
4
- gem 'rspec-expectations', '2.14.4'
@@ -1,37 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- test-queue (0.5.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- builder (3.2.2)
10
- cucumber (2.4.0)
11
- builder (>= 2.1.2)
12
- cucumber-core (~> 1.5.0)
13
- cucumber-wire (~> 0.0.1)
14
- diff-lcs (>= 1.1.3)
15
- gherkin (~> 4.0)
16
- multi_json (>= 1.7.5, < 2.0)
17
- multi_test (>= 0.1.2)
18
- cucumber-core (1.5.0)
19
- gherkin (~> 4.0)
20
- cucumber-wire (0.0.1)
21
- diff-lcs (1.2.5)
22
- gherkin (4.0.0)
23
- multi_json (1.12.1)
24
- multi_test (0.1.2)
25
- rspec-expectations (2.14.4)
26
- diff-lcs (>= 1.1.3, < 2.0)
27
-
28
- PLATFORMS
29
- ruby
30
-
31
- DEPENDENCIES
32
- cucumber (= 2.4.0)
33
- rspec-expectations (= 2.14.4)
34
- test-queue!
35
-
36
- BUNDLED WITH
37
- 1.13.1
data/Gemfile-minitest4 DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
- gem 'minitest', '4.7.3'
@@ -1,19 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- test-queue (0.5.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- minitest (4.7.3)
10
-
11
- PLATFORMS
12
- ruby
13
-
14
- DEPENDENCIES
15
- minitest (= 4.7.3)
16
- test-queue!
17
-
18
- BUNDLED WITH
19
- 1.13.1
data/Gemfile-minitest5 DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
- gem 'minitest', '5.3.3'
@@ -1,19 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- test-queue (0.5.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- minitest (5.3.3)
10
-
11
- PLATFORMS
12
- ruby
13
-
14
- DEPENDENCIES
15
- minitest (= 5.3.3)
16
- test-queue!
17
-
18
- BUNDLED WITH
19
- 1.13.1
data/Gemfile-rspec2-1 DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
- gem 'rspec', '2.13.0'
@@ -1,27 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- test-queue (0.5.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- diff-lcs (1.2.5)
10
- rspec (2.13.0)
11
- rspec-core (~> 2.13.0)
12
- rspec-expectations (~> 2.13.0)
13
- rspec-mocks (~> 2.13.0)
14
- rspec-core (2.13.1)
15
- rspec-expectations (2.13.0)
16
- diff-lcs (>= 1.1.3, < 2.0)
17
- rspec-mocks (2.13.1)
18
-
19
- PLATFORMS
20
- ruby
21
-
22
- DEPENDENCIES
23
- rspec (= 2.13.0)
24
- test-queue!
25
-
26
- BUNDLED WITH
27
- 1.13.1
data/Gemfile-rspec3-0 DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
- gem 'rspec', '~> 3.0.0'
@@ -1,31 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- test-queue (0.5.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- diff-lcs (1.2.5)
10
- rspec (3.0.0)
11
- rspec-core (~> 3.0.0)
12
- rspec-expectations (~> 3.0.0)
13
- rspec-mocks (~> 3.0.0)
14
- rspec-core (3.0.4)
15
- rspec-support (~> 3.0.0)
16
- rspec-expectations (3.0.4)
17
- diff-lcs (>= 1.2.0, < 2.0)
18
- rspec-support (~> 3.0.0)
19
- rspec-mocks (3.0.4)
20
- rspec-support (~> 3.0.0)
21
- rspec-support (3.0.4)
22
-
23
- PLATFORMS
24
- ruby
25
-
26
- DEPENDENCIES
27
- rspec (~> 3.0.0)
28
- test-queue!
29
-
30
- BUNDLED WITH
31
- 1.13.1
data/Gemfile-rspec3-1 DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
- gem 'rspec', '~> 3.1.0'
@@ -1,31 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- test-queue (0.5.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- diff-lcs (1.2.5)
10
- rspec (3.1.0)
11
- rspec-core (~> 3.1.0)
12
- rspec-expectations (~> 3.1.0)
13
- rspec-mocks (~> 3.1.0)
14
- rspec-core (3.1.7)
15
- rspec-support (~> 3.1.0)
16
- rspec-expectations (3.1.2)
17
- diff-lcs (>= 1.2.0, < 2.0)
18
- rspec-support (~> 3.1.0)
19
- rspec-mocks (3.1.3)
20
- rspec-support (~> 3.1.0)
21
- rspec-support (3.1.2)
22
-
23
- PLATFORMS
24
- ruby
25
-
26
- DEPENDENCIES
27
- rspec (~> 3.1.0)
28
- test-queue!
29
-
30
- BUNDLED WITH
31
- 1.13.1
data/Gemfile-rspec3-2 DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
- gem 'rspec', '~> 3.2.0'
@@ -1,32 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- test-queue (0.5.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- diff-lcs (1.2.5)
10
- rspec (3.2.0)
11
- rspec-core (~> 3.2.0)
12
- rspec-expectations (~> 3.2.0)
13
- rspec-mocks (~> 3.2.0)
14
- rspec-core (3.2.3)
15
- rspec-support (~> 3.2.0)
16
- rspec-expectations (3.2.1)
17
- diff-lcs (>= 1.2.0, < 2.0)
18
- rspec-support (~> 3.2.0)
19
- rspec-mocks (3.2.1)
20
- diff-lcs (>= 1.2.0, < 2.0)
21
- rspec-support (~> 3.2.0)
22
- rspec-support (3.2.2)
23
-
24
- PLATFORMS
25
- ruby
26
-
27
- DEPENDENCIES
28
- rspec (~> 3.2.0)
29
- test-queue!
30
-
31
- BUNDLED WITH
32
- 1.13.1
data/Gemfile-testunit DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
- gem 'test-unit', '3.0.8'
@@ -1,21 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- test-queue (0.5.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- power_assert (0.2.2)
10
- test-unit (3.0.8)
11
- power_assert
12
-
13
- PLATFORMS
14
- ruby
15
-
16
- DEPENDENCIES
17
- test-queue!
18
- test-unit (= 3.0.8)
19
-
20
- BUNDLED WITH
21
- 1.13.1
data/Gemfile.lock DELETED
@@ -1,41 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- test-queue (0.5.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- builder (3.2.2)
10
- cucumber (1.3.10)
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.0.2)
16
- diff-lcs (1.2.4)
17
- gherkin (2.12.2)
18
- multi_json (~> 1.3)
19
- minitest (5.3.3)
20
- multi_json (1.8.4)
21
- multi_test (0.0.3)
22
- rspec (2.13.0)
23
- rspec-core (~> 2.13.0)
24
- rspec-expectations (~> 2.13.0)
25
- rspec-mocks (~> 2.13.0)
26
- rspec-core (2.13.1)
27
- rspec-expectations (2.13.0)
28
- diff-lcs (>= 1.1.3, < 2.0)
29
- rspec-mocks (2.13.1)
30
-
31
- PLATFORMS
32
- ruby
33
-
34
- DEPENDENCIES
35
- cucumber (~> 1.3.10)
36
- minitest (= 5.3.3)
37
- rspec (>= 2.13, < 4.0)
38
- test-queue!
39
-
40
- BUNDLED WITH
41
- 1.13.1
data/script/cibuild DELETED
@@ -1,19 +0,0 @@
1
- #!/bin/sh
2
-
3
- set -ex
4
-
5
- if [ "$SUITE" = "ruby" ]; then
6
- exec script/spec
7
- fi
8
-
9
- export TEST_QUEUE_WORKERS=2 TEST_QUEUE_VERBOSE=1
10
-
11
- if [ -f "Gemfile-$SUITE" ]; then
12
- export BUNDLE_GEMFILE="Gemfile-$SUITE"
13
- else
14
- export BUNDLE_GEMFILE=Gemfile
15
- fi
16
-
17
- bundle install
18
-
19
- vendor/bats/bin/bats test
data/script/spec DELETED
@@ -1,7 +0,0 @@
1
- #!/bin/sh
2
-
3
- set -ex
4
-
5
- export BUNDLE_GEMFILE=Gemfile-rspec3-2
6
- bundle install
7
- bundle exec rspec spec