rrrspec-cucumber2 1.0.1 → 1.0.2

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5d7809e30f01773e36d41188dfcbb6c4a8678763
4
- data.tar.gz: fa61c816e8d4d2bd82e0ab57ac03e46edadbbc67
3
+ metadata.gz: ee345851937200655ac4b8ff79b6f689f2c7ec3e
4
+ data.tar.gz: 9755d154627cc686a84e1e98802bd5d12ee9baf1
5
5
  SHA512:
6
- metadata.gz: 72d103e29b911bb055eccc0b5833abe130ef704b3f1bb9fb793232a95490b252ee23f92d92760d3958b372b851cc6f42bc6ddd139adf3d2651bcaaaf8ce0d848
7
- data.tar.gz: 4f2d6c1054fd020e1e6ce318c2ea7f58c83ff1507383657b7efb63c7e2679395094e41f3acce4de8a752501850d995035430fc04bf53e004d6293bf917e6c1b2
6
+ metadata.gz: 874b2f4db7f076fb2aa5b86bc3c1263b8bea1d55fd60865e96277497bceefdb9f846bf99957920ab19f08cd5929fa31675bfad8a3bae3c5a8f67bb1ece324068
7
+ data.tar.gz: f4c39a6c55e43fb35797affb3f7945894d7a3f15a94f4bc59ffebe049ca29ec09f20c4775834b1d9ef86195223f09b24d1a7c13383274e975bd8ce13df3343e5
@@ -1,103 +1,53 @@
1
- require 'cucumber/configuration'
2
- require 'cucumber'
3
-
4
- include Cucumber::RbSupport::RbDsl
5
- include Cucumber::Core::Test
6
-
7
1
  module RRRSpec
8
2
  module Cucumber2
9
3
  class CucumberRunner
10
4
 
11
- def initialize
12
- @configuration = Cucumber::Cli::Configuration.new.tap do |configuration|
13
- Cucumber.logger = configuration.log
14
- end
15
- @runtime = Cucumber::Runtime.new @configuration
16
- @stdout_buffer = StringIO.new
17
- @stderr_buffer = StringIO.new
18
- @formatters_ok = false
19
- end
5
+ def setup(file_path)
6
+ @file_path = file_path
7
+ status = true
20
8
 
21
- def exc_safe_replace_stdouts
22
- @stdout_buffer.string = ''
23
- @stderr_buffer.string = ''
24
- $stdout = @stdout_buffer
25
- $stderr = @stderr_buffer
26
- begin
27
- yield
28
- rescue Exception
29
- $stderr.puts $!
30
- $stderr.puts $!.backtrace.join("\n")
31
- end
32
- outbuf = @stdout_buffer.string
33
- errbuf = @stderr_buffer.string
34
- [outbuf, errbuf]
35
- ensure
36
- $stdout = STDOUT
37
- $stderr = STDERR
9
+ [status, '', '']
38
10
  end
39
11
 
40
- def setup(filepath)
41
- status = false
12
+ def run(*formatters)
13
+ formatter = formatters.first
42
14
 
43
- outbuf, errbuf = exc_safe_replace_stdouts do
44
- begin
45
- @configuration.parse!([filepath])
46
- @runtime.configure(@configuration)
15
+ result = `SLAVE_NUMBER=#{ENV['SLAVE_NUMBER']} bundle exec cucumber #{@file_path}`
16
+ status = $?.success?
47
17
 
48
- status = true
49
- rescue Exception
50
- @stdout_buffer.puts $!
51
- @stdout_buffer.puts $!.backtrace.join("\n")
52
- status = false
53
- end
18
+ begin
19
+ print_result(formatter, result)
20
+ rescue Exception => e
21
+ puts e.message
54
22
  end
55
23
 
56
- [status, outbuf, errbuf]
24
+ [status, result, '']
57
25
  end
58
26
 
59
- def setup_formatter(formatter)
60
- return if @formatters_ok
61
-
62
- AfterConfiguration do |config|
63
- formatter.reset if formatter.passed == nil || formatter.pending == nil || formatter.failed == nil
64
-
65
- config.on_event :before_test_case do |event|
66
- puts "Scenario: #{event.test_case.name}"
67
- end
68
-
69
- config.on_event :after_test_case do |event|
70
- puts ''
71
- end
72
-
73
- config.on_event :after_test_step do |event|
74
- next if event.test_step.name == 'Before hook' || event.test_step.name == 'After hook'
75
-
76
- formatter.example_failed event if (event.result.is_a? Result::Failed)
77
- formatter.example_passed if (event.result.is_a? Result::Passed)
78
- formatter.example_pending if (event.result.is_a? Result::Pending)
79
-
80
- puts "#{event.test_step.name} -> #{event.result.to_s}"
81
- end
82
- end
83
-
84
- @formatters_ok = true
27
+ def reset
28
+ @file_path = ''
85
29
  end
86
30
 
87
- def run(*formatters)
88
- setup_formatter(formatters.first)
31
+ def print_result(formatter, result)
32
+ formatter.reset if formatter.passed == nil || formatter.pending == nil || formatter.failed == nil
89
33
 
90
- status = false
34
+ penultimate_idx = result.lines.count - 2
35
+ penultimate_line = result.lines[penultimate_idx]
91
36
 
92
- outbuf, errbuf = exc_safe_replace_stdouts do
93
- @runtime.run!
94
- status = true
37
+ if penultimate_line.match(/(\d+) failed/)
38
+ n = penultimate_line.match(/(\d+) failed/)[1].to_i
39
+ (1..n).each { formatter.example_failed nil }
95
40
  end
96
41
 
97
- [status, outbuf, errbuf]
98
- end
42
+ if penultimate_line.match(/(\d+) skipped/)
43
+ n = penultimate_line.match(/(\d+) skipped/)[1].to_i
44
+ (1..n).each { formatter.example_pending }
45
+ end
99
46
 
100
- def reset
47
+ if penultimate_line.match(/(\d+) passed/)
48
+ n = penultimate_line.match(/(\d+) passed/)[1].to_i
49
+ (1..n).each { formatter.example_passed }
50
+ end
101
51
  end
102
52
 
103
53
  end
@@ -1,5 +1,5 @@
1
1
  module RRRSpec
2
2
  module Cucumber2
3
- VERSION = '1.0.1'
3
+ VERSION = '1.0.2'
4
4
  end
5
5
  end
@@ -22,5 +22,5 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency 'rake', '~> 10.0'
23
23
  spec.add_development_dependency 'rspec', '~> 3.0'
24
24
  spec.add_dependency 'rrrspec-client', '~> 0.4.3'
25
- spec.add_dependency 'cucumber', '~> 2.4', '>= 2.4.0'
25
+ spec.add_dependency 'cucumber', '~> 2.4'
26
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rrrspec-cucumber2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - João Luís
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-04 00:00:00.000000000 Z
11
+ date: 2016-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -73,9 +73,6 @@ dependencies:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '2.4'
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- version: 2.4.0
79
76
  type: :runtime
80
77
  prerelease: false
81
78
  version_requirements: !ruby/object:Gem::Requirement
@@ -83,9 +80,6 @@ dependencies:
83
80
  - - "~>"
84
81
  - !ruby/object:Gem::Version
85
82
  version: '2.4'
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: 2.4.0
89
83
  description:
90
84
  email:
91
85
  - jrluis@gmail.com