cukeforker 0.1.2 → 0.1.3
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.
data/lib/cukeforker/runner.rb
CHANGED
@@ -6,16 +6,17 @@ module CukeForker
|
|
6
6
|
# where 'features' is an Array of file:line
|
7
7
|
# and 'opts' is a Hash of options:
|
8
8
|
#
|
9
|
-
# :max => Fixnum
|
10
|
-
# :vnc => true/false
|
11
|
-
#
|
12
|
-
# :record => true/false
|
13
|
-
#
|
14
|
-
#
|
15
|
-
# :
|
16
|
-
# :
|
17
|
-
# :
|
18
|
-
# :
|
9
|
+
# :max => Fixnum number of workers (default: 2)
|
10
|
+
# :vnc => true/false children are launched with DISPLAY set from a VNC server pool,
|
11
|
+
# where the size of the pool is equal to :max
|
12
|
+
# :record => true/false,Hash whether to record a video of failed tests (requires ffmpeg)
|
13
|
+
# this will be ignored if if :vnc is not true. If passed a Hash,
|
14
|
+
# these will be passed as options to RecordingVncListener
|
15
|
+
# :notify => object (or array of objects) implementing the AbstractListener API
|
16
|
+
# :out => path directory to dump output to (default: current working dir)
|
17
|
+
# :log => true/false wether or not to log to stdout (default: true)
|
18
|
+
# :format => Symbol format passed to `cucumber --format` (default: html)
|
19
|
+
# :extra_args => Array extra arguments passed to cucumber
|
19
20
|
#
|
20
21
|
|
21
22
|
class Runner
|
@@ -24,7 +25,8 @@ module CukeForker
|
|
24
25
|
DEFAULT_OPTIONS = {
|
25
26
|
:max => 2,
|
26
27
|
:vnc => false,
|
27
|
-
:
|
28
|
+
:record => false,
|
29
|
+
:notify => nil,
|
28
30
|
:out => Dir.pwd,
|
29
31
|
:log => true,
|
30
32
|
:format => :html
|
@@ -51,8 +53,12 @@ module CukeForker
|
|
51
53
|
vnc_pool = VncTools::ServerPool.new(max)
|
52
54
|
listener = VncListener.new(vnc_pool)
|
53
55
|
|
54
|
-
if opts[:record]
|
55
|
-
|
56
|
+
if record = opts[:record]
|
57
|
+
if record.kind_of?(Hash)
|
58
|
+
listeners << RecordingVncListener.new(listener, record)
|
59
|
+
else
|
60
|
+
listeners << RecordingVncListener.new(listener)
|
61
|
+
end
|
56
62
|
end
|
57
63
|
end
|
58
64
|
|
data/lib/cukeforker/version.rb
CHANGED
@@ -75,5 +75,12 @@ module CukeForker
|
|
75
75
|
listener.on_run_interrupted
|
76
76
|
end
|
77
77
|
|
78
|
+
it "passes along options to each recorder" do
|
79
|
+
listener = RecordingVncListener.new vnc_listener, :codec => "flv"
|
80
|
+
VncTools::Recorder.should_receive(:new).with(":2", "./foo.flv", :codec => "flv").and_return(recorder)
|
81
|
+
|
82
|
+
listener.on_worker_starting worker
|
83
|
+
end
|
84
|
+
|
78
85
|
end # RecordingVncListener
|
79
86
|
end # CukeForker
|
@@ -55,6 +55,17 @@ module CukeForker
|
|
55
55
|
Runner.create([], :max => 2, :vnc => true, :record => true)
|
56
56
|
end
|
57
57
|
|
58
|
+
it "sets up VNC recording if :record => Hash" do
|
59
|
+
mock_pool = mock(VncTools::ServerPool, :add_observer => nil)
|
60
|
+
VncTools::ServerPool.should_receive(:new).with(2).and_return mock_pool
|
61
|
+
|
62
|
+
mock_vnc_listener = mock(:update => nil)
|
63
|
+
VncListener.should_receive(:new).with(mock_pool).and_return(mock_vnc_listener)
|
64
|
+
RecordingVncListener.should_receive(:new).with(mock_vnc_listener, :codec => "flv").and_return(mock(:update => nil))
|
65
|
+
|
66
|
+
Runner.create([], :max => 2, :vnc => true, :record => {:codec => "flv"})
|
67
|
+
end
|
68
|
+
|
58
69
|
it "creates and runs a new runner" do
|
59
70
|
r = mock(Runner)
|
60
71
|
Runner.should_receive(:create).with(%w[a b], {}).and_return(r)
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: cukeforker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jari Bakken
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-02-
|
13
|
+
date: 2011-02-14 00:00:00 +01:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -115,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
115
|
requirements: []
|
116
116
|
|
117
117
|
rubyforge_project: cukeforker
|
118
|
-
rubygems_version: 1.5.
|
118
|
+
rubygems_version: 1.5.2
|
119
119
|
signing_key:
|
120
120
|
specification_version: 3
|
121
121
|
summary: Library to maintain a forking queue of Cucumber processes
|