gurke 2.0.0.dev.1.b20 → 2.0.0.dev.1.b22
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 +8 -8
- data/features/support/steps/cli_steps.rb +1 -1
- data/gurke.gemspec +16 -7
- data/lib/gurke.rb +1 -2
- data/lib/gurke/builder.rb +0 -2
- data/lib/gurke/cli.rb +1 -1
- data/lib/gurke/configuration.rb +1 -2
- data/lib/gurke/dsl.rb +0 -1
- data/lib/gurke/feature.rb +0 -1
- data/lib/gurke/reporters/default_reporter.rb +23 -19
- data/lib/gurke/reporters/null_reporter.rb +1 -1
- data/lib/gurke/runner.rb +0 -1
- data/lib/gurke/scenario.rb +0 -1
- data/lib/gurke/step.rb +15 -14
- data/lib/gurke/step_definition.rb +0 -2
- data/lib/gurke/steps.rb +2 -3
- data/lib/gurke/tag.rb +0 -1
- data/lib/gurke/version.rb +0 -1
- data/spec/gurke/feature_list_spec.rb +49 -0
- data/spec/gurke/run_list_spec.rb +31 -0
- data/spec/gurke/scenario_spec.rb +1 -1
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YWJlYzFiZWQxMTE4MTZmMjllZmM0YzU0MGQ1YzgyMDNiOTMyNGM4MQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YTAyNjdlOWM2YzU5ZDZlNWJiMDk2MzJiM2RkZDM4ZDE3NGRmOGZhMg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ODdhM2NkMjk4NmIwOTQ2Y2Y5NjkzMDdkMjlmMWMzNDJkMzEzOGY3NWUyZDZk
|
10
|
+
NmJmY2Y5MTA2ODk1NWM5MDY3OGE0ZDBhZmZlNGEwNTY1ODk0MDIyNTFhOTI4
|
11
|
+
ODc2YjVlZTZkZDE1MDU1ODU3OTQxMGQyN2FhYTlkMzJmNmIyZjM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ODJjODY1NmJlZDIxOGUzNWVkY2YwMWQ2NjlmY2MwMjY5ZmJkZTEzNDNkOGMw
|
14
|
+
MjgzZDdjNzJkZGEzMmMxZWY2NDJkOGU5OGFjM2Q5N2E3MTQ5ZDljZGNjZTI2
|
15
|
+
NDc5YTJiN2Q5MmMzODcwZTI2MGZmNjVlNDIxMGEzYjZlODc2MTE=
|
data/gurke.gemspec
CHANGED
@@ -8,14 +8,21 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Gurke::VERSION
|
9
9
|
spec.authors = ['Jan Graichen']
|
10
10
|
spec.email = %w(jg@altimos.de)
|
11
|
-
spec.description = %q{An alternative gherkin feature runner inspired by rspec and turnip.}
|
12
|
-
spec.summary = %q{An alternative gherkin feature runner inspired by rspec and turnip.}
|
13
11
|
spec.homepage = 'https://github.com/jgraichen/gurke'
|
14
12
|
spec.license = 'MIT'
|
15
13
|
|
16
|
-
spec.
|
17
|
-
|
18
|
-
spec.
|
14
|
+
spec.description = \
|
15
|
+
%q(An alternative gherkin feature runner inspired by rspec and turnip.)
|
16
|
+
spec.summary = \
|
17
|
+
%q(An alternative gherkin feature runner inspired by rspec and turnip.)
|
18
|
+
|
19
|
+
spec.files = Dir['**/*'].grep %r{^(
|
20
|
+
(bin/|lib/|test/|spec/|features/)|
|
21
|
+
(\w*\.gemspec|LICENSE.*|README.*|CHANGELOG.*)$
|
22
|
+
)}x
|
23
|
+
|
24
|
+
spec.executables = spec.files.grep(/^bin\//) {|f| File.basename(f) }
|
25
|
+
spec.test_files = spec.files.grep(/^(test|spec|features)\//)
|
19
26
|
spec.require_paths = %w(lib)
|
20
27
|
|
21
28
|
spec.add_dependency 'trollop'
|
@@ -24,6 +31,8 @@ Gem::Specification.new do |spec|
|
|
24
31
|
|
25
32
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
26
33
|
|
27
|
-
|
28
|
-
|
34
|
+
if ENV['TRAVIS_BUILD_NUMBER']
|
35
|
+
# Append travis build number for auto-releases
|
36
|
+
spec.version = "#{spec.version}.1.b#{ENV['TRAVIS_BUILD_NUMBER']}"
|
37
|
+
end
|
29
38
|
end
|
data/lib/gurke.rb
CHANGED
data/lib/gurke/builder.rb
CHANGED
data/lib/gurke/cli.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'trollop'
|
2
2
|
|
3
3
|
module Gurke
|
4
|
-
#
|
5
4
|
class CLI
|
6
5
|
#
|
7
6
|
# Run CLI with given arguments.
|
@@ -45,6 +44,7 @@ module Gurke
|
|
45
44
|
parser.educate($stdout)
|
46
45
|
end
|
47
46
|
|
47
|
+
# rubocop:disable MethodLength
|
48
48
|
def parser
|
49
49
|
@parser ||= Trollop::Parser.new do
|
50
50
|
opt :help, 'Print this help.'
|
data/lib/gurke/configuration.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
module Gurke
|
2
|
-
#
|
3
2
|
class Configuration
|
4
3
|
#
|
5
4
|
# Define a before filter running before given action.
|
@@ -106,7 +105,7 @@ module Gurke
|
|
106
105
|
|
107
106
|
def run(world, &block)
|
108
107
|
@before.each{|hook| hook.run world }
|
109
|
-
@around.reduce(block){|
|
108
|
+
@around.reduce(block){|a, e| proc{ e.run world, a }}.call
|
110
109
|
ensure
|
111
110
|
@after.each do |hook|
|
112
111
|
begin
|
data/lib/gurke/dsl.rb
CHANGED
data/lib/gurke/feature.rb
CHANGED
@@ -1,12 +1,17 @@
|
|
1
1
|
require 'colorize'
|
2
2
|
|
3
|
-
#
|
3
|
+
# Colors
|
4
4
|
# :black, :red, :green, :yellow, :blue,
|
5
5
|
# :magenta, :cyan, :white, :default, :light_black,
|
6
6
|
# :light_red, :light_green, :light_yellow, :light_blue,
|
7
7
|
# :light_magenta, :light_cyan, :light_white
|
8
|
-
|
8
|
+
#
|
9
9
|
module Gurke::Reporters
|
10
|
+
#
|
11
|
+
# The {DefaultReporter} prints features, scenarios and
|
12
|
+
# steps while they are executed.
|
13
|
+
#
|
14
|
+
# That includes colorized step results reports etc.
|
10
15
|
#
|
11
16
|
class DefaultReporter < NullReporter
|
12
17
|
def before_feature(feature)
|
@@ -37,21 +42,10 @@ module Gurke::Reporters
|
|
37
42
|
|
38
43
|
def after_step(step, *)
|
39
44
|
case step.state
|
40
|
-
when :pending
|
41
|
-
|
42
|
-
when :
|
43
|
-
|
44
|
-
io.puts
|
45
|
-
io.puts red(" #{step.exception.class}:")
|
46
|
-
|
47
|
-
msg = step.exception.message.split("\n").join("\n ")
|
48
|
-
io.puts red(" #{msg}")
|
49
|
-
|
50
|
-
io.puts red(" #{step.exception.backtrace.join("\n ")}")
|
51
|
-
when :success
|
52
|
-
print_braces green('success')
|
53
|
-
else
|
54
|
-
print_braces cyan('skipped')
|
45
|
+
when :pending then print_braces yellow 'pending'
|
46
|
+
when :failed then print_failed step
|
47
|
+
when :success then print_braces green 'success'
|
48
|
+
else print_braces cyan 'skipped'
|
55
49
|
end
|
56
50
|
io.puts
|
57
51
|
io.flush
|
@@ -68,8 +62,8 @@ module Gurke::Reporters
|
|
68
62
|
def after_features(features)
|
69
63
|
scenarios = features.map(&:scenarios).flatten
|
70
64
|
|
71
|
-
io.puts " #{scenarios.size} scenarios: "\
|
72
|
-
"#{scenarios.select(&:failed?).size} failing, "\
|
65
|
+
io.puts " #{scenarios.size} scenarios: " \
|
66
|
+
"#{scenarios.select(&:failed?).size} failing, " \
|
73
67
|
"#{scenarios.select(&:pending?).size} pending"
|
74
68
|
io.puts
|
75
69
|
end
|
@@ -80,6 +74,16 @@ module Gurke::Reporters
|
|
80
74
|
io.print " (#{str})"
|
81
75
|
end
|
82
76
|
|
77
|
+
def print_failed(step)
|
78
|
+
print_braces red('failure')
|
79
|
+
io.puts
|
80
|
+
msg = step.exception.message.split("\n").join("\n ")
|
81
|
+
|
82
|
+
io.puts red(" #{step.exception.class}:")
|
83
|
+
io.puts red(" #{msg}")
|
84
|
+
io.puts red(" #{step.exception.backtrace.join("\n ")}")
|
85
|
+
end
|
86
|
+
|
83
87
|
def io
|
84
88
|
$stdout
|
85
89
|
end
|
data/lib/gurke/runner.rb
CHANGED
data/lib/gurke/scenario.rb
CHANGED
data/lib/gurke/step.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
module Gurke
|
2
|
-
#
|
3
2
|
class Step
|
4
3
|
#
|
5
4
|
# Return path to file containing this scenario.
|
@@ -55,28 +54,30 @@ module Gurke
|
|
55
54
|
def run_step(runner, reporter, scenario, world)
|
56
55
|
reporter.invoke :start_step, self, scenario
|
57
56
|
|
58
|
-
result =
|
57
|
+
result = find_and_run_step runner, scenario, world
|
58
|
+
rescue StepPending => e
|
59
|
+
scenario.pending! e
|
60
|
+
result = StepResult.new self, :pending, e
|
61
|
+
rescue => e
|
62
|
+
scenario.failed! e
|
63
|
+
result = StepResult.new self, :failed, e
|
64
|
+
ensure
|
65
|
+
reporter.invoke :end_step, result, scenario
|
66
|
+
end
|
67
|
+
|
68
|
+
def find_and_run_step(runner, scenario, world)
|
59
69
|
runner.with_filtered_backtrace do
|
60
70
|
match = Steps.find_step self, world, type
|
61
71
|
|
62
72
|
if scenario.pending? || scenario.failed?
|
63
|
-
|
64
|
-
return result
|
73
|
+
return StepResult.new self, :skipped
|
65
74
|
end
|
66
75
|
|
67
76
|
m = world.method match.method_name
|
68
77
|
world.send match.method_name, *(match.params + [self])[0...m.arity]
|
69
|
-
end
|
70
78
|
|
71
|
-
|
72
|
-
|
73
|
-
scenario.pending! e
|
74
|
-
result = StepResult.new self, :pending, e
|
75
|
-
rescue => e
|
76
|
-
scenario.failed! e
|
77
|
-
result = StepResult.new self, :failed, e
|
78
|
-
ensure
|
79
|
-
reporter.invoke :end_step, result, scenario
|
79
|
+
StepResult.new self, :success
|
80
|
+
end
|
80
81
|
end
|
81
82
|
|
82
83
|
#
|
data/lib/gurke/steps.rb
CHANGED
data/lib/gurke/tag.rb
CHANGED
data/lib/gurke/version.rb
CHANGED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Gurke::FeatureList do
|
4
|
+
let(:reporter) { Gurke::Reporters::NullReporter.new }
|
5
|
+
let(:runner) { double 'runner' }
|
6
|
+
let(:feature) { double 'feature' }
|
7
|
+
|
8
|
+
before do
|
9
|
+
features << feature
|
10
|
+
|
11
|
+
allow(runner).to receive(:hook) {|_, _, &block| block.call }
|
12
|
+
allow(feature).to receive(:failed?).and_return false
|
13
|
+
allow(feature).to receive(:pending?).and_return false
|
14
|
+
allow(feature).to receive(:run)
|
15
|
+
end
|
16
|
+
|
17
|
+
let(:features) { Gurke::FeatureList.new }
|
18
|
+
|
19
|
+
describe '#run' do
|
20
|
+
subject { features.run runner, reporter }
|
21
|
+
|
22
|
+
it 'should run all features' do
|
23
|
+
expect(feature).to receive(:run).with(runner, reporter)
|
24
|
+
|
25
|
+
subject
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should run hooks' do
|
29
|
+
expect(runner).to receive(:hook) do |scope, world|
|
30
|
+
expect(scope).to eq :features
|
31
|
+
expect(world).to eq nil
|
32
|
+
end
|
33
|
+
|
34
|
+
subject
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should run reporter callbacks in correct order' do
|
38
|
+
expect(reporter).to receive(:invoke).exactly(4).times do |*args|
|
39
|
+
@scopes ||= []
|
40
|
+
@scopes << args.first
|
41
|
+
end
|
42
|
+
|
43
|
+
subject
|
44
|
+
|
45
|
+
expect(@scopes).to eq [:before_features, :start_features,
|
46
|
+
:end_features, :after_features]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Gurke::RunList do
|
4
|
+
let(:reporter) { Gurke::Reporters::NullReporter.new }
|
5
|
+
let(:runner) { double 'runner' }
|
6
|
+
let(:object) { double 'object' }
|
7
|
+
let(:list) { Gurke::RunList.new }
|
8
|
+
|
9
|
+
before do
|
10
|
+
list << object
|
11
|
+
allow(object).to receive(:run)
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '#run' do
|
15
|
+
subject { list.run runner, reporter }
|
16
|
+
|
17
|
+
it 'should run all objects' do
|
18
|
+
expect(object).to receive(:run).with(runner, reporter)
|
19
|
+
subject
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'with additional args' do
|
23
|
+
subject { list.run runner, reporter, 0, :sym }
|
24
|
+
|
25
|
+
it 'should pass additional args' do
|
26
|
+
expect(object).to receive(:run).with(runner, reporter, 0, :sym)
|
27
|
+
subject
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/spec/gurke/scenario_spec.rb
CHANGED
@@ -9,7 +9,7 @@ describe Gurke::Scenario do
|
|
9
9
|
before do
|
10
10
|
allow(feature).to receive(:backgrounds).ordered.and_return(backgrounds)
|
11
11
|
allow(backgrounds).to receive(:run)
|
12
|
-
allow(runner).to receive(:hook){|_,_
|
12
|
+
allow(runner).to receive(:hook) {|_, _, &block| block.call }
|
13
13
|
end
|
14
14
|
|
15
15
|
let(:scenario) do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gurke
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.dev.1.
|
4
|
+
version: 2.0.0.dev.1.b22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Graichen
|
@@ -106,6 +106,8 @@ files:
|
|
106
106
|
- lib/gurke/steps.rb
|
107
107
|
- lib/gurke/tag.rb
|
108
108
|
- lib/gurke/version.rb
|
109
|
+
- spec/gurke/feature_list_spec.rb
|
110
|
+
- spec/gurke/run_list_spec.rb
|
109
111
|
- spec/gurke/scenario_spec.rb
|
110
112
|
- spec/spec_helper.rb
|
111
113
|
homepage: https://github.com/jgraichen/gurke
|
@@ -140,5 +142,7 @@ test_files:
|
|
140
142
|
- features/gurke/step_specific_definitions.feature
|
141
143
|
- features/support/steps/cli_steps.rb
|
142
144
|
- features/support/steps/file_steps.rb
|
145
|
+
- spec/gurke/feature_list_spec.rb
|
146
|
+
- spec/gurke/run_list_spec.rb
|
143
147
|
- spec/gurke/scenario_spec.rb
|
144
148
|
- spec/spec_helper.rb
|