test-queue 0.2.13 → 0.3.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 (58) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.travis.yml +18 -0
  4. data/Gemfile +2 -0
  5. data/Gemfile-cucumber1-3 +4 -0
  6. data/Gemfile-cucumber1-3.lock +33 -0
  7. data/Gemfile-cucumber2-4 +4 -0
  8. data/Gemfile-cucumber2-4.lock +37 -0
  9. data/Gemfile-minitest4.lock +4 -23
  10. data/Gemfile-minitest5 +3 -0
  11. data/Gemfile-minitest5.lock +19 -0
  12. data/Gemfile-rspec2-1 +3 -0
  13. data/Gemfile-rspec2-1.lock +27 -0
  14. data/Gemfile-rspec3-0.lock +4 -13
  15. data/Gemfile-rspec3-1.lock +4 -13
  16. data/Gemfile-rspec3-2.lock +4 -13
  17. data/Gemfile-testunit.lock +4 -27
  18. data/Gemfile.lock +4 -1
  19. data/README.md +4 -0
  20. data/bin/minitest-queue +0 -1
  21. data/bin/testunit-queue +0 -1
  22. data/lib/test_queue/iterator.rb +41 -10
  23. data/lib/test_queue/runner.rb +167 -58
  24. data/lib/test_queue/runner/cucumber.rb +81 -12
  25. data/lib/test_queue/runner/minitest.rb +0 -4
  26. data/lib/test_queue/runner/minitest4.rb +25 -2
  27. data/lib/test_queue/runner/minitest5.rb +36 -11
  28. data/lib/test_queue/runner/rspec.rb +55 -7
  29. data/lib/test_queue/runner/rspec2.rb +11 -8
  30. data/lib/test_queue/runner/rspec3.rb +10 -7
  31. data/lib/test_queue/runner/sample.rb +0 -2
  32. data/lib/test_queue/runner/testunit.rb +25 -7
  33. data/lib/test_queue/stats.rb +95 -0
  34. data/lib/test_queue/test_framework.rb +29 -0
  35. data/script/bootstrap +12 -0
  36. data/script/cibuild +19 -0
  37. data/script/spec +7 -0
  38. data/spec/stats_spec.rb +76 -0
  39. data/test-queue.gemspec +1 -4
  40. data/test/cucumber.bats +57 -0
  41. data/test/minitest4.bats +34 -0
  42. data/test/minitest5.bats +111 -0
  43. data/test/rspec.bats +38 -0
  44. data/{features → test/samples/features}/bad.feature +0 -0
  45. data/{features → test/samples/features}/sample.feature +0 -0
  46. data/{features → test/samples/features}/sample2.feature +0 -0
  47. data/{features → test/samples/features}/step_definitions/common.rb +5 -1
  48. data/test/{sample_minispec.rb → samples/sample_minispec.rb} +6 -0
  49. data/test/{sample_minitest4.rb → samples/sample_minitest4.rb} +5 -3
  50. data/test/{sample_minitest5.rb → samples/sample_minitest5.rb} +5 -3
  51. data/test/{sample_spec.rb → samples/sample_spec.rb} +5 -3
  52. data/test/samples/sample_split_spec.rb +17 -0
  53. data/test/{sample_testunit.rb → samples/sample_testunit.rb} +5 -3
  54. data/test/testlib.bash +81 -0
  55. data/test/testunit.bats +20 -0
  56. metadata +40 -60
  57. data/test-multi.sh +0 -8
  58. data/test.sh +0 -23
@@ -0,0 +1,17 @@
1
+ require "rspec"
2
+
3
+ describe 'SplittableGroup', :no_split => !!ENV["NOSPLIT"] do
4
+ 2.times do |i|
5
+ it "runs test #{i}" do
6
+ # Sleep longer in CI to make the distribution of examples across workers
7
+ # more deterministic.
8
+ if ENV["CI"]
9
+ sleep(5)
10
+ else
11
+ sleep(1)
12
+ end
13
+
14
+ expect(1).to eq 1
15
+ end
16
+ end
17
+ end
@@ -16,8 +16,10 @@ end
16
16
  end)
17
17
  end
18
18
 
19
- class TestUnitFailure < Test::Unit::TestCase
20
- def test_fail
21
- assert_equal 0, 1
19
+ if ENV["FAIL"]
20
+ class TestUnitFailure < Test::Unit::TestCase
21
+ def test_fail
22
+ assert_equal 0, 1
23
+ end
22
24
  end
23
25
  end
@@ -0,0 +1,81 @@
1
+ # Skip this test unless the bundle contains a gem matching the required
2
+ # version. Example:
3
+ #
4
+ # require_gem "minitest" "~> 5.3"
5
+ require_gem() {
6
+ name=$1
7
+ requirement=$2
8
+
9
+ set +e
10
+ version=$(bundle exec ruby - <<RUBY
11
+ spec = Gem.loaded_specs['$name']
12
+ exit unless spec
13
+ puts spec.version
14
+ exit Gem::Dependency.new('$name', '$requirement').match?(spec)
15
+ RUBY
16
+ )
17
+ result=$?
18
+ set -e
19
+
20
+ if [ "$version" = "" ]; then
21
+ skip "$name is not installed"
22
+ elif [ $result -ne 0 ]; then
23
+ skip "$name $version is not $requirement"
24
+ fi
25
+ }
26
+
27
+ assert_status() {
28
+ expected=$1
29
+ [ "$status" -eq "$expected" ] || {
30
+ echo "Expected status to be $expected but was $status. Full output:"
31
+ echo "$output"
32
+ return 1
33
+ }
34
+ return 0
35
+ }
36
+
37
+ refute_status() {
38
+ expected=$1
39
+ [ "$status" -ne "$expected" ] || {
40
+ echo "Expected status not to be $expected. Full output:"
41
+ echo "$output"
42
+ return 1
43
+ }
44
+ return 0
45
+ }
46
+
47
+ assert_output_contains() {
48
+ echo "$output" | fgrep --quiet "$@" || {
49
+ echo "Expected to find \"$@\" in:"
50
+ echo "$output"
51
+ return 1
52
+ }
53
+ return 0
54
+ }
55
+
56
+ refute_output_contains() {
57
+ assert_output_contains "$@" && {
58
+ echo "Expected not to find \"$@\" in:"
59
+ echo "$output"
60
+ return 1
61
+ }
62
+ return 0
63
+ }
64
+
65
+ assert_output_matches() {
66
+ echo "$output" | egrep --quiet "$@" || {
67
+ echo "Expected to \"$@\" to match within:"
68
+ echo "$output"
69
+ return 1
70
+ }
71
+ return 0
72
+ }
73
+
74
+ refute_output_matches() {
75
+ assert_output_matches "$@" && {
76
+ echo "Expected \"$@\" not to match within:"
77
+ echo "$output"
78
+ return 1
79
+ }
80
+ return 0
81
+ }
@@ -0,0 +1,20 @@
1
+ load "testlib"
2
+
3
+ setup() {
4
+ require_gem "test-unit" ">= 3.0"
5
+ }
6
+
7
+ @test "testunit-queue succeeds when all tests pass" {
8
+ run bundle exec testunit-queue ./test/samples/*_testunit.rb
9
+ assert_status 0
10
+ assert_output_contains "Starting test-queue master"
11
+ }
12
+
13
+ @test "testunit-queue fails when a test fails" {
14
+ export FAIL=1
15
+ run bundle exec testunit-queue ./test/samples/*_testunit.rb
16
+ assert_status 1
17
+ assert_output_contains "Starting test-queue master"
18
+ assert_output_contains "Failure:"
19
+ assert_output_contains "test_fail(TestUnitFailure)"
20
+ }
metadata CHANGED
@@ -1,54 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test-queue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.13
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Aman Gupta
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-05-14 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rspec
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '2.13'
22
- - - <
23
- - !ruby/object:Gem::Version
24
- version: '4.0'
25
- type: :development
26
- prerelease: false
27
- version_requirements: !ruby/object:Gem::Requirement
28
- none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '2.13'
33
- - - <
34
- - !ruby/object:Gem::Version
35
- version: '4.0'
36
- - !ruby/object:Gem::Dependency
37
- name: cucumber
38
- requirement: !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ~>
42
- - !ruby/object:Gem::Version
43
- version: 1.3.10
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: 1.3.10
11
+ date: 2016-09-20 00:00:00.000000000 Z
12
+ dependencies: []
52
13
  description: minitest/rspec parallel test runner for CI environments
53
14
  email: ruby@tmm1.net
54
15
  executables:
@@ -59,9 +20,19 @@ executables:
59
20
  extensions: []
60
21
  extra_rdoc_files: []
61
22
  files:
23
+ - ".gitignore"
24
+ - ".travis.yml"
62
25
  - Gemfile
26
+ - Gemfile-cucumber1-3
27
+ - Gemfile-cucumber1-3.lock
28
+ - Gemfile-cucumber2-4
29
+ - Gemfile-cucumber2-4.lock
63
30
  - Gemfile-minitest4
64
31
  - Gemfile-minitest4.lock
32
+ - Gemfile-minitest5
33
+ - Gemfile-minitest5.lock
34
+ - Gemfile-rspec2-1
35
+ - Gemfile-rspec2-1.lock
65
36
  - Gemfile-rspec3-0
66
37
  - Gemfile-rspec3-0.lock
67
38
  - Gemfile-rspec3-1
@@ -76,10 +47,6 @@ files:
76
47
  - bin/minitest-queue
77
48
  - bin/rspec-queue
78
49
  - bin/testunit-queue
79
- - features/bad.feature
80
- - features/sample.feature
81
- - features/sample2.feature
82
- - features/step_definitions/common.rb
83
50
  - lib/test-queue.rb
84
51
  - lib/test_queue.rb
85
52
  - lib/test_queue/iterator.rb
@@ -94,38 +61,51 @@ files:
94
61
  - lib/test_queue/runner/rspec3.rb
95
62
  - lib/test_queue/runner/sample.rb
96
63
  - lib/test_queue/runner/testunit.rb
97
- - test-multi.sh
64
+ - lib/test_queue/stats.rb
65
+ - lib/test_queue/test_framework.rb
66
+ - script/bootstrap
67
+ - script/cibuild
68
+ - script/spec
69
+ - spec/stats_spec.rb
98
70
  - test-queue.gemspec
99
- - test.sh
100
- - test/sample_minispec.rb
101
- - test/sample_minitest4.rb
102
- - test/sample_minitest5.rb
103
- - test/sample_spec.rb
104
- - test/sample_testunit.rb
71
+ - test/cucumber.bats
72
+ - test/minitest4.bats
73
+ - test/minitest5.bats
74
+ - test/rspec.bats
75
+ - test/samples/features/bad.feature
76
+ - test/samples/features/sample.feature
77
+ - test/samples/features/sample2.feature
78
+ - test/samples/features/step_definitions/common.rb
79
+ - test/samples/sample_minispec.rb
80
+ - test/samples/sample_minitest4.rb
81
+ - test/samples/sample_minitest5.rb
82
+ - test/samples/sample_spec.rb
83
+ - test/samples/sample_split_spec.rb
84
+ - test/samples/sample_testunit.rb
85
+ - test/testlib.bash
86
+ - test/testunit.bats
105
87
  homepage: http://github.com/tmm1/test-queue
106
88
  licenses:
107
89
  - MIT
90
+ metadata: {}
108
91
  post_install_message:
109
92
  rdoc_options: []
110
93
  require_paths:
111
94
  - lib
112
95
  required_ruby_version: !ruby/object:Gem::Requirement
113
- none: false
114
96
  requirements:
115
- - - ! '>='
97
+ - - ">="
116
98
  - !ruby/object:Gem::Version
117
99
  version: '0'
118
100
  required_rubygems_version: !ruby/object:Gem::Requirement
119
- none: false
120
101
  requirements:
121
- - - ! '>='
102
+ - - ">="
122
103
  - !ruby/object:Gem::Version
123
104
  version: '0'
124
105
  requirements: []
125
106
  rubyforge_project:
126
- rubygems_version: 1.8.23
107
+ rubygems_version: 2.4.5
127
108
  signing_key:
128
- specification_version: 3
109
+ specification_version: 4
129
110
  summary: parallel test runner
130
111
  test_files: []
131
- has_rdoc: false
@@ -1,8 +0,0 @@
1
- #!/bin/sh
2
- set -x
3
-
4
- # export TEST_QUEUE_VERBOSE=1
5
- TEST_QUEUE_SOCKET=0.0.0.0:12345 bundle exec minitest-queue ./test/sample_minitest5.rb &
6
- sleep 0.1
7
- TEST_QUEUE_RELAY=0.0.0.0:12345 bundle exec minitest-queue ./test/sample_minitest5.rb
8
- wait
data/test.sh DELETED
@@ -1,23 +0,0 @@
1
- #!/bin/sh
2
- set -x
3
-
4
- export TEST_QUEUE_WORKERS=2 TEST_QUEUE_VERBOSE=1
5
-
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
12
- bundle exec minitest-queue ./test/*_minitest4.rb
13
- bundle exec minitest-queue ./test/*_minispec.rb
14
-
15
- export BUNDLE_GEMFILE=Gemfile
16
- bundle install
17
- bundle exec minitest-queue ./test/*_minitest4.rb
18
- bundle exec minitest-queue ./test/*_minitest5.rb
19
- bundle exec minitest-queue ./test/*_minispec.rb
20
- bundle exec rspec-queue test
21
- bundle exec cucumber-queue
22
-
23
- TEST_QUEUE_WORKERS=1 TEST_QUEUE_FORCE="MiniTestSleep21,MiniTestSleep8,MiniTestFailure" bundle exec minitest-queue ./test/*_minitest5.rb