test-queue 0.2.0 → 0.2.1

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OGI3ODY2YmQxMzJkMjVmMTZlNTYyMTNhOGI0NjBlY2ExMmExZTU2OQ==
4
+ OGNkYjM1ODExYmMzZjM5OTNkNzA5MTcwY2M3MjQ0MzUxY2IxN2U2MQ==
5
5
  data.tar.gz: !binary |-
6
- MmM0NDMxOGRlMWMyZTE5Yjk2Yjg0M2JlNjNiYTU2MzMyNWMzYmQ1NQ==
6
+ MjQ2MzIzNjlhZTI5MTc3ZTI5YjBiNWRkYjU5YzM1YTJiY2VkOTc3Mw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MmJmODdiYTBlMjg5MzM5YTBhNWFiNzQ2OTQxOTQ5ZmNhZGRhOTg2MmY1ZWUx
10
- MWYyNmRkNTViODFlNTFmMWQ0MmE2OGEwYzFlOWFlMTk2NGQzMTFkNTkxMzNh
11
- MGMwZWM3MzkzZmU3MTQ0MDFjMWNjZDc0ZWQyY2RjZjc5YjlkOGI=
9
+ OGVkZTM5Nzk3YjMwYWJmODk0ODZmYjdkMTY1ZWQxZjQ0Yzg3MGU2ZTE1YjQy
10
+ NTFiNzEyYjlhYmI3MDcxZmZhYzU1NGFjNzEyZmQ5YmE2ODQ5ZDU2ZGUwZjA4
11
+ OGVhMGM0MWU4MTRkMjJiMWUwNzgzZDM2Mjg2NWI0ZjA3ODgzOTQ=
12
12
  data.tar.gz: !binary |-
13
- NzQzNTczODAyODI1M2QzZDhiOGNmODZjNjBmMGViODAyZDM1MmNiZmEwOGQw
14
- YzY0YTczMTM4YzNiY2VhODA0NjJjNWUyNTgxOWZiMmFlZDNkMjUzYzZhNGU5
15
- MTQ5NTE5MzZkMjViMmNmMDViZTgyMDdhNmY5ZjU5NzBjYmMzOWE=
13
+ NGVmYTQ0OTY3NGJkOTQxYTBkNmFkZWY4MDQ0MTc4NzA0ZTMxN2ViZmM2NDYy
14
+ MzEyODlkZTRhYzEwNWJmMWUzYWVhOTI2NTNiMzJiY2UyZDAyZGI2ODUxNmUw
15
+ NDQwODcyZmE0MjhlYTljZmMyNTc1MmRiNzdjMzU2MWY0ODEwMjg=
data/Gemfile.lock CHANGED
@@ -1,13 +1,24 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- test-queue (0.1.3)
4
+ test-queue (0.2.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
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)
9
16
  diff-lcs (1.2.4)
17
+ gherkin (2.12.2)
18
+ multi_json (~> 1.3)
10
19
  minitest (4.7.3)
20
+ multi_json (1.8.4)
21
+ multi_test (0.0.3)
11
22
  rspec (2.13.0)
12
23
  rspec-core (~> 2.13.0)
13
24
  rspec-expectations (~> 2.13.0)
@@ -21,6 +32,7 @@ PLATFORMS
21
32
  ruby
22
33
 
23
34
  DEPENDENCIES
35
+ cucumber (~> 1.3.10)
24
36
  minitest (~> 4.7.3)
25
37
  rspec (~> 2.13)
26
38
  test-queue!
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require 'test_queue'
3
+ require 'test_queue/runner/cucumber'
4
+ TestQueue::Runner::Cucumber.new.execute
@@ -0,0 +1,5 @@
1
+ Feature: bad
2
+ Scenario: failure
3
+ Given a
4
+ When bad
5
+ Then c
@@ -0,0 +1,25 @@
1
+ Feature: Foobar
2
+ Scenario: Bar
3
+ Given a
4
+ When b
5
+ Then c
6
+ Scenario: Baz
7
+ Given a
8
+ When b
9
+ Then c
10
+ Scenario: Bam
11
+ Given a
12
+ When b
13
+ Then c
14
+ Scenario: Car
15
+ Given a
16
+ When b
17
+ Then c
18
+ Scenario: Caz
19
+ Given a
20
+ When b
21
+ Then c
22
+ Scenario: Cam
23
+ Given a
24
+ When b
25
+ Then c
@@ -0,0 +1,29 @@
1
+ Feature: Foobar2
2
+ Scenario: Bar
3
+ Given a
4
+ When b
5
+ Then c
6
+ Scenario: Baz
7
+ Given a
8
+ When b
9
+ Then c
10
+ Scenario: Bam
11
+ Given a
12
+ When b
13
+ Then c
14
+ Scenario: Car
15
+ Given a
16
+ When b
17
+ Then c
18
+ Scenario: Caz
19
+ Given a
20
+ When b
21
+ Then c
22
+ Scenario: Cam
23
+ Given a
24
+ When b
25
+ Then c
26
+ Scenario: failure
27
+ Given a
28
+ When bad
29
+ Then c
@@ -0,0 +1,15 @@
1
+ Given(/^a$/) do
2
+ sleep 0.10
3
+ end
4
+
5
+ When(/^b$/) do
6
+ sleep 0.25
7
+ end
8
+
9
+ When(/^bad$/) do
10
+ 1.should == 0
11
+ end
12
+
13
+ Then(/^c$/) do
14
+ 1.should == 1
15
+ end
@@ -0,0 +1,48 @@
1
+ require 'cucumber'
2
+ require 'cucumber/rspec/disable_option_parser'
3
+ require 'cucumber/cli/main'
4
+
5
+ module Cucumber
6
+ module Ast
7
+ class Features
8
+ attr_accessor :features
9
+ end
10
+
11
+ class Feature
12
+ def to_s
13
+ title
14
+ end
15
+ end
16
+ end
17
+ end
18
+
19
+ module TestQueue
20
+ class Runner
21
+ class Cucumber < Runner
22
+ def initialize
23
+ @cli = ::Cucumber::Cli::Main.new(ARGV.dup)
24
+ @runtime = ::Cucumber::Runtime.new(@cli.configuration)
25
+ @features_loader = @runtime.send(:features)
26
+ features = @features_loader.features.sort_by{ |s| -(stats[s.to_s] || 0) }
27
+ super(features)
28
+ end
29
+
30
+ def run_worker(iterator)
31
+ @features_loader.features = iterator
32
+ @cli.execute!(@runtime)
33
+ end
34
+
35
+ def summarize_worker(worker)
36
+ worker.stats.each do |s, val|
37
+ stats[s.to_s] = val
38
+ end
39
+
40
+ output = worker.output.gsub(/\e\[\d+./,'')
41
+ summary = output.split("\n").grep(/^\d+ (scenarios?|steps?)/).first
42
+ failures = output.scan(/^Failing Scenarios:\n(.*)\n\d+ scenarios?/m).join("\n")
43
+
44
+ [ summary, failures ]
45
+ end
46
+ end
47
+ end
48
+ end
@@ -51,13 +51,13 @@ module TestQueue
51
51
 
52
52
  def summarize_worker(worker)
53
53
  worker.stats.each do |s, val|
54
- stats[s.description] = val
54
+ stats[s] = val
55
55
  end
56
56
 
57
- num_tests = worker.lines.grep(/ examples?, /).first
58
- failures = worker.output[/^Failures:\n\n(.*)\n^Finished/m, 1]
57
+ summary = worker.lines.grep(/ examples?, /).first
58
+ failures = worker.output[/^Failures:\n\n(.*)\n^Finished/m, 1]
59
59
 
60
- [ num_tests, failures ]
60
+ [ summary, failures ]
61
61
  end
62
62
  end
63
63
  end
@@ -117,7 +117,10 @@ module TestQueue
117
117
  end
118
118
 
119
119
  summarize
120
- exit! @completed.inject(0){ |s, worker| s + worker.status.exitstatus }
120
+
121
+ estatus = @completed.inject(0){ |s, worker| s + worker.status.exitstatus }
122
+ estatus = 255 if estatus > 255
123
+ exit!(estatus)
121
124
  end
122
125
 
123
126
  def summarize
data/test/sample_spec.rb CHANGED
@@ -6,7 +6,7 @@ describe 'RSpecEqual' do
6
6
  end
7
7
  end
8
8
 
9
- 500.times do |i|
9
+ 30.times do |i|
10
10
  describe "RSpecSleep(#{i})" do
11
11
  it "sleeps" do
12
12
  start = Time.now
data/test/sample_test.rb CHANGED
@@ -6,7 +6,7 @@ class MiniTestEqual < MiniTest::Unit::TestCase
6
6
  end
7
7
  end
8
8
 
9
- 500.times do |i|
9
+ 30.times do |i|
10
10
  Object.const_set("MiniTestSleep#{i}", Class.new(MiniTest::Unit::TestCase) do
11
11
  define_method('test_sleep') do
12
12
  start = Time.now
data/test-queue.gemspec CHANGED
@@ -1,22 +1,24 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'test-queue'
3
- s.version = '0.2.0'
3
+ s.version = '0.2.1'
4
4
  s.summary = 'parallel test runner'
5
5
  s.description = 'minitest/rspec parallel test runner for CI environments'
6
- s.license = 'MIT'
7
6
 
8
7
  s.homepage = "http://github.com/tmm1/test-queue"
9
8
 
10
9
  s.authors = ["Aman Gupta"]
11
10
  s.email = "ruby@tmm1.net"
11
+ s.license = 'MIT'
12
12
 
13
13
  s.has_rdoc = false
14
14
  s.bindir = 'bin'
15
15
  s.executables << 'rspec-queue'
16
16
  s.executables << 'minitest-queue'
17
+ s.executables << 'cucumber-queue'
17
18
 
18
19
  s.add_development_dependency 'rspec', '~> 2.13'
19
20
  s.add_development_dependency 'minitest', '~> 4.7.3'
21
+ s.add_development_dependency 'cucumber', '~> 1.3.10'
20
22
 
21
23
  s.files = `git ls-files`.split("\n")
22
24
  end
data/test.sh ADDED
@@ -0,0 +1,9 @@
1
+ #!/bin/sh
2
+ set -x
3
+
4
+ export TEST_QUEUE_WORKERS=2 TEST_QUEUE_VERBOSE=1
5
+
6
+ bundle exec minitest-queue ./test/*_minispec.rb
7
+ bundle exec minitest-queue ./test/*_test.rb
8
+ bundle exec rspec-queue test
9
+ bundle exec cucumber-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.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aman Gupta
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-07 00:00:00.000000000 Z
11
+ date: 2014-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -38,28 +38,50 @@ dependencies:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: 4.7.3
41
+ - !ruby/object:Gem::Dependency
42
+ name: cucumber
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 1.3.10
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.3.10
41
55
  description: minitest/rspec parallel test runner for CI environments
42
56
  email: ruby@tmm1.net
43
57
  executables:
44
58
  - rspec-queue
45
59
  - minitest-queue
60
+ - cucumber-queue
46
61
  extensions: []
47
62
  extra_rdoc_files: []
48
63
  files:
49
64
  - Gemfile
50
65
  - Gemfile.lock
51
66
  - README.md
67
+ - bin/cucumber-queue
52
68
  - bin/minitest-queue
53
69
  - bin/rspec-queue
70
+ - features/bad.feature
71
+ - features/sample.feature
72
+ - features/sample2.feature
73
+ - features/step_definitions/common.rb
54
74
  - lib/test-queue.rb
55
75
  - lib/test_queue.rb
56
76
  - lib/test_queue/iterator.rb
57
77
  - lib/test_queue/runner.rb
78
+ - lib/test_queue/runner/cucumber.rb
58
79
  - lib/test_queue/runner/minitest.rb
59
80
  - lib/test_queue/runner/puppet_lint.rb
60
81
  - lib/test_queue/runner/rspec.rb
61
82
  - lib/test_queue/runner/sample.rb
62
83
  - test-queue.gemspec
84
+ - test.sh
63
85
  - test/sample_minispec.rb
64
86
  - test/sample_spec.rb
65
87
  - test/sample_test.rb