rrrspec-cucumber2 1.0.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8203a6f4388bbb7689c2822624f338c4b270f11c
4
+ data.tar.gz: a3883519b9452dd69fb0bf8d1366cb3af5159a7a
5
+ SHA512:
6
+ metadata.gz: 2eaa501e1264c3fc852b028461dd39056109f4e382edd74ca4db01153bb1c49d815741c1f32731fa3b7a82ee6962f7523b6ba15f0c06d03411e2b16a47083a78
7
+ data.tar.gz: edae5182cca2884335ae5731eda0ed93d276484b6d900767e9c64ef838b0615dd5a1be1f34d4acb296d84db50bdcb35e551a461fd11e685c94bd82268c054ff8
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.3
4
+ before_install: gem install bundler -v 1.11.2
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in rrrspec-cucumber2.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # Rrrspec::Cucumber2
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/rrrspec/cucumber2`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'rrrspec-cucumber2'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install rrrspec-cucumber2
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/rrrspec-cucumber2.
36
+
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,105 @@
1
+ require 'cucumber/configuration'
2
+ require 'cucumber'
3
+
4
+ include Cucumber::RbSupport::RbDsl
5
+ include Cucumber::Core::Test
6
+
7
+ module RRRSpec
8
+ module Cucumber2
9
+ class CucumberRunner
10
+
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
20
+
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
38
+ end
39
+
40
+ def setup(filepath)
41
+ status = false
42
+
43
+ outbuf, errbuf = exc_safe_replace_stdouts do
44
+ begin
45
+ @configuration.parse!([filepath])
46
+ @runtime.configure(@configuration)
47
+
48
+ status = true
49
+ rescue Exception
50
+ @stdout_buffer.puts $!
51
+ @stdout_buffer.puts $!.backtrace.join("\n")
52
+ status = false
53
+ end
54
+ end
55
+
56
+ [status, outbuf, errbuf]
57
+ end
58
+
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
85
+ end
86
+
87
+ def run(*formatters)
88
+ setup_formatter(formatters.first)
89
+
90
+ status = false
91
+
92
+ outbuf, errbuf = exc_safe_replace_stdouts do
93
+ @runtime.run!
94
+ status = true
95
+ end
96
+
97
+ [status, outbuf, errbuf]
98
+ end
99
+
100
+ def reset
101
+ end
102
+
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,19 @@
1
+ module RRRSpec
2
+ module Cucumber2
3
+ class CucumberRunnerFactory
4
+ attr_reader :next_factory
5
+
6
+ def initialize(next_factory)
7
+ @next_factory = next_factory
8
+ @runner = CucumberRunner.new
9
+ end
10
+
11
+ def create(file_extension)
12
+ return @runner if file_extension == '.feature'
13
+ return @runner if @next_factory == nil
14
+
15
+ @next_factory.create file_extension
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,5 @@
1
+ module RRRSpec
2
+ module Cucumber2
3
+ VERSION = '1.0.0'
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ require 'rrrspec/cucumber2/version'
2
+ require 'rrrspec/cucumber2/cucumber_runner'
3
+ require 'rrrspec/cucumber2/cucumber_runner_factory'
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'rrrspec/cucumber2/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'rrrspec-cucumber2'
8
+ spec.version = RRRSpec::Cucumber2::VERSION
9
+ spec.authors = ['João Luís']
10
+ spec.email = ['jrluis@gmail.com']
11
+
12
+ spec.summary = 'This gem adds cucumber 2 support to rrrspec'
13
+ spec.homepage = 'https://github.com/Seedrs/rrrspec-cucumber2'
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = 'exe'
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_development_dependency 'bundler', '~> 1.11'
22
+ spec.add_development_dependency 'rake', '~> 10.0'
23
+ spec.add_development_dependency 'rspec', '~> 3.0'
24
+ spec.add_dependency 'rrrspec-client', '~> 0.4.3'
25
+ spec.add_dependency 'cucumber', '~> 2.4', '>= 2.4.0'
26
+ end
metadata ADDED
@@ -0,0 +1,131 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rrrspec-cucumber2
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - João Luís
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-08-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.11'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.11'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rrrspec-client
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.4.3
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.4.3
69
+ - !ruby/object:Gem::Dependency
70
+ name: cucumber
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.4'
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 2.4.0
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '2.4'
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 2.4.0
89
+ description:
90
+ email:
91
+ - jrluis@gmail.com
92
+ executables: []
93
+ extensions: []
94
+ extra_rdoc_files: []
95
+ files:
96
+ - ".gitignore"
97
+ - ".rspec"
98
+ - ".travis.yml"
99
+ - Gemfile
100
+ - README.md
101
+ - Rakefile
102
+ - lib/rrrspec/cucumber2.rb
103
+ - lib/rrrspec/cucumber2/cucumber_runner.rb
104
+ - lib/rrrspec/cucumber2/cucumber_runner_factory.rb
105
+ - lib/rrrspec/cucumber2/version.rb
106
+ - rrrspec-cucumber2.gemspec
107
+ homepage: https://github.com/Seedrs/rrrspec-cucumber2
108
+ licenses:
109
+ - MIT
110
+ metadata: {}
111
+ post_install_message:
112
+ rdoc_options: []
113
+ require_paths:
114
+ - lib
115
+ required_ruby_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ requirements: []
126
+ rubyforge_project:
127
+ rubygems_version: 2.5.2
128
+ signing_key:
129
+ specification_version: 4
130
+ summary: This gem adds cucumber 2 support to rrrspec
131
+ test_files: []