test-queue 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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