gurke 2.0.0.dev.1.b23 → 2.0.0.dev.1.b24
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/lib/gurke/cli.rb +12 -2
- data/lib/gurke/configuration.rb +3 -2
- data/lib/gurke/reporters/default_reporter.rb +9 -5
- data/lib/gurke/runner.rb +56 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZTk5NTMwMzIxYWU5ZWU4NzM0ODk4YzFmZTczYTZkMjQ2YzRhMzVjZg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
N2RjYTQxMjE3YmRkMjE1ZjBlZThlOGI0ZjA0OTMwNTFjN2ViOWEzMQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YzM5NDlkMzg4NTQyZThmZTY4YzNiZTNjZGZmMWJiOWM3YjYzYTY4MDQ3YWE3
|
10
|
+
ZDUyOWM2OWRlMzJkYjI0ZTY0ZDgxNThkYmVlN2M4NzdjYzAyNzczODcyNjZi
|
11
|
+
M2ExNTFjMzQxZjIzZmRiZjAxYWU4YzNlNDI3NzY3YjNlMTVlZmE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZjAwOTNhMDQyOTQ0M2ZkZWIzZmExY2FmYmExOGIxZjJjYjk4N2U5MzhlNmI2
|
14
|
+
OTI0ODQ0YzJhYWE0MDY2OWY1YWIwMzBhOTE5ZmVhMzAwMmJiNTgzYWQwMzhh
|
15
|
+
YTExYzAxODVhMDk3NGE1MjlmZTRiNTk3OTE4ZTQ4NGJjZTk5MDY=
|
data/lib/gurke/cli.rb
CHANGED
@@ -29,9 +29,17 @@ module Gurke
|
|
29
29
|
end if options[:require].any?
|
30
30
|
|
31
31
|
files = Dir[options[:pattern].to_s] if files.empty? && options[:pattern]
|
32
|
-
|
32
|
+
files.map!{|f| File.expand_path(f) }
|
33
33
|
|
34
|
-
|
34
|
+
runner = if options[:drb_server]
|
35
|
+
Runner::DRbServer
|
36
|
+
elsif options[:drb]
|
37
|
+
Runner::DRbClient
|
38
|
+
else
|
39
|
+
Runner::LocalRunner
|
40
|
+
end.new Gurke.config, options
|
41
|
+
|
42
|
+
Kernel.exit runner.run files
|
35
43
|
end
|
36
44
|
|
37
45
|
def print_version
|
@@ -61,6 +69,8 @@ module Gurke
|
|
61
69
|
'filtering expression. TODO: Description.',
|
62
70
|
default: ['~wip'],
|
63
71
|
multi: true
|
72
|
+
opt :drb_server
|
73
|
+
opt :drb
|
64
74
|
end
|
65
75
|
end
|
66
76
|
end
|
data/lib/gurke/configuration.rb
CHANGED
@@ -68,10 +68,11 @@ module Gurke
|
|
68
68
|
features: HookSet.new,
|
69
69
|
feature: HookSet.new,
|
70
70
|
scenario: HookSet.new,
|
71
|
-
step: HookSet.new
|
71
|
+
step: HookSet.new,
|
72
|
+
system: HookSet.new
|
72
73
|
}
|
73
74
|
|
74
|
-
hooks.merge each: hooks[:scenario]
|
75
|
+
hooks.merge! each: hooks[:scenario]
|
75
76
|
hooks
|
76
77
|
end
|
77
78
|
end
|
@@ -14,6 +14,11 @@ module Gurke::Reporters
|
|
14
14
|
# That includes colorized step results reports etc.
|
15
15
|
#
|
16
16
|
class DefaultReporter < NullReporter
|
17
|
+
attr_reader :io
|
18
|
+
def initialize(io = $stdout)
|
19
|
+
@io = io
|
20
|
+
end
|
21
|
+
|
17
22
|
def before_feature(feature)
|
18
23
|
io.puts "#{yellow('Feature')}: #{feature.name}"
|
19
24
|
io.puts ' ' + light_black(feature.description.split("\n").join("\n "))
|
@@ -22,10 +27,13 @@ module Gurke::Reporters
|
|
22
27
|
|
23
28
|
def before_scenario(scenario)
|
24
29
|
io.puts " #{yellow('Scenario')}: #{scenario.name}"
|
25
|
-
io.puts light_black(' Background:') if scenario.backgrounds.any?
|
26
30
|
end
|
27
31
|
|
28
32
|
def start_background(*)
|
33
|
+
unless @background
|
34
|
+
io.puts light_black(' Background:')
|
35
|
+
end
|
36
|
+
|
29
37
|
@background = true
|
30
38
|
end
|
31
39
|
|
@@ -84,10 +92,6 @@ module Gurke::Reporters
|
|
84
92
|
io.puts red(" #{step.exception.backtrace.join("\n ")}")
|
85
93
|
end
|
86
94
|
|
87
|
-
def io
|
88
|
-
$stdout
|
89
|
-
end
|
90
|
-
|
91
95
|
[:black, :red, :green, :yellow, :blue,
|
92
96
|
:magenta, :cyan, :white, :default, :light_black,
|
93
97
|
:light_red, :light_green, :light_yellow, :light_blue,
|
data/lib/gurke/runner.rb
CHANGED
@@ -1,26 +1,26 @@
|
|
1
1
|
module Gurke
|
2
2
|
class Runner
|
3
|
-
attr_reader :
|
4
|
-
attr_reader :files
|
5
|
-
attr_reader :options
|
6
|
-
attr_reader :config
|
3
|
+
attr_reader :config, :options
|
7
4
|
|
8
|
-
def initialize(config,
|
5
|
+
def initialize(config, options = {})
|
9
6
|
@config = config
|
10
7
|
@options = options
|
11
|
-
@files = files
|
12
|
-
@builder = Builder.new options
|
13
8
|
end
|
14
9
|
|
15
10
|
def reporter
|
16
11
|
@reporter ||= Reporters::DefaultReporter.new
|
17
12
|
end
|
18
13
|
|
19
|
-
def
|
14
|
+
def load_feature_set(files)
|
15
|
+
builder = Builder.new options
|
20
16
|
files.each{|f| builder.parse(f) }
|
17
|
+
|
21
18
|
features = builder.features
|
22
19
|
features.freeze
|
20
|
+
end
|
23
21
|
|
22
|
+
def run(files, reporter = self.reporter)
|
23
|
+
features = load_feature_set files
|
24
24
|
features.run self, reporter
|
25
25
|
end
|
26
26
|
|
@@ -37,5 +37,53 @@ module Gurke
|
|
37
37
|
end
|
38
38
|
raise
|
39
39
|
end
|
40
|
+
|
41
|
+
class LocalRunner < Runner
|
42
|
+
def run(files, reporter = self.reporter)
|
43
|
+
features = load_feature_set files
|
44
|
+
|
45
|
+
hook :system, nil do
|
46
|
+
features.run self, reporter
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
class DRbServer < Runner
|
52
|
+
URI = 'druby://localhost:8789'
|
53
|
+
|
54
|
+
def run(files)
|
55
|
+
require 'drb'
|
56
|
+
|
57
|
+
hook :system, nil do
|
58
|
+
DRb.start_service URI, self
|
59
|
+
$stdout.puts 'DRb Server running...'
|
60
|
+
|
61
|
+
begin
|
62
|
+
DRb.thread.join
|
63
|
+
rescue Interrupt
|
64
|
+
$stdout.puts
|
65
|
+
$stdout.puts 'Exiting...'
|
66
|
+
end
|
67
|
+
|
68
|
+
0
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def run_remote(options, files, reporter)
|
73
|
+
Runner.new(config, options).run files, reporter
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
class DRbClient < Runner
|
78
|
+
def run(files)
|
79
|
+
require 'drb'
|
80
|
+
|
81
|
+
DRb.start_service
|
82
|
+
$stdout.puts 'Connect to DRb server...'
|
83
|
+
|
84
|
+
srv = DRbObject.new_with_uri DRbServer::URI
|
85
|
+
srv.run_remote options, files, reporter
|
86
|
+
end
|
87
|
+
end
|
40
88
|
end
|
41
89
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.b24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Graichen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: trollop
|