test-queue 0.2.0 → 0.2.1

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