rrrspec-cucumber2 1.0.1 → 1.0.2

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