aslakhellesoy-cucumber 0.3.9.5 → 0.3.10
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/History.txt +20 -9
- data/features/drb_server_integration.feature +8 -2
- data/features/html_formatter/a.html +4 -4
- data/features/junit_formatter.feature +11 -2
- data/features/step_definitions/cucumber_steps.rb +6 -2
- data/lib/cucumber/cli/main.rb +2 -2
- data/lib/cucumber/formatter/color_io.rb +2 -2
- data/lib/cucumber/formatter/junit.rb +1 -2
- data/lib/cucumber/version.rb +2 -2
- data/spec/cucumber/cli/main_spec.rb +4 -4
- metadata +2 -2
data/History.txt
CHANGED
@@ -1,17 +1,28 @@
|
|
1
|
-
== 0.3.10
|
1
|
+
== 0.3.10 2009-06-05
|
2
|
+
|
3
|
+
The Spork Release!
|
2
4
|
|
3
5
|
This release has an exciting new feature - a new --drb switch! This magic switch lets you run your
|
4
6
|
features much faster than before, because you can eliminate the startup time for your code. This is
|
5
|
-
thanks to a brand new gem called Spork by Tim Harper and Ben Mabey. You can
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
thanks to a brand new gem called Spork by Tim Harper and Ben Mabey. (You can find out more about Spork
|
8
|
+
here: http://github.com/timcharper/spork/tree/master). You can start Spork and have it preload your
|
9
|
+
application in a separate process. Spork listens for DRb connections, and when you run cucumber with
|
10
|
+
--drb the features will run inside the Spork server instead. Spork provides two simple hooks for preloading
|
11
|
+
your application - one for framework/stable code (Spork.prefork) and one for the code that *you* write and
|
12
|
+
change often (Spork.each_run). Keep in mind that all World, Before, and other Cucumber hooks need to be
|
13
|
+
in the Spork.each_run block. Using Spork works great for Ruby on Rails, which can take a while to load,
|
14
|
+
but --drb and Spork aren't tied to Rails at all. The new --drb switch also works great alongside autotest
|
15
|
+
(just add --drb to your autotest profile in cucumber.yml), so now you can get even faster feedback.
|
11
16
|
|
12
17
|
Cucumber's built-in cucumber generator now has a new --spork switch, so when you bootstrap your Rails
|
13
18
|
application for cucumber, you can have spork configuration set up out of the box. (It's just a
|
14
|
-
slightly different env.rb)
|
19
|
+
slightly different env.rb.)
|
20
|
+
|
21
|
+
Although Spork was in mind when the --drb switch was added it is important to realize that all that was added
|
22
|
+
to Cucumber was a DRb client. Any DRb server that adheres to this protocol can be used with Cucumber's --drb
|
23
|
+
switch. While Spork is geared towards removing the load time to give you a faster feedback loop you could
|
24
|
+
just as easily use this client with a server that distributes your features to run in parallel. Someone just
|
25
|
+
needs to write such a server. ;)
|
15
26
|
|
16
27
|
This release also has some minor bugfixes related to RSpec and Rails interop.
|
17
28
|
|
@@ -22,7 +33,7 @@ This release also has some minor bugfixes related to RSpec and Rails interop.
|
|
22
33
|
|
23
34
|
=== New features
|
24
35
|
* Spork support via --drb. (Ben Mabey)
|
25
|
-
* Added a Ast::Feature#name method for convenience
|
36
|
+
* Added a Ast::Feature#name method for convenience. (Aslak Hellesøy)
|
26
37
|
|
27
38
|
=== Changed features
|
28
39
|
* The HTML formatter wraps examples in a div, and distinguishes between Scenario and Scenario Outline. (Aslak Hellesøy)
|
@@ -61,9 +61,12 @@ Feature: DRb Server Integration
|
|
61
61
|
|
62
62
|
When I run cucumber features/sample.feature --drb
|
63
63
|
Then it should pass
|
64
|
-
And
|
64
|
+
And STDERR should match
|
65
65
|
"""
|
66
66
|
No DRb server is running. Running features locally:
|
67
|
+
"""
|
68
|
+
And the output should contain
|
69
|
+
"""
|
67
70
|
I'm loading all the heavy stuff...
|
68
71
|
I'm loading the stuff just for this run...
|
69
72
|
"""
|
@@ -78,9 +81,12 @@ Feature: DRb Server Integration
|
|
78
81
|
|
79
82
|
When I run cucumber --profile server
|
80
83
|
Then it should pass
|
81
|
-
And
|
84
|
+
And STDERR should match
|
82
85
|
"""
|
83
86
|
No DRb server is running. Running features locally:
|
87
|
+
"""
|
88
|
+
And the output should contain
|
89
|
+
"""
|
84
90
|
I'm loading all the heavy stuff...
|
85
91
|
I'm loading the stuff just for this run...
|
86
92
|
"""
|
@@ -568,7 +568,7 @@ I should have '<count>' cukes </span>
|
|
568
568
|
<td class="val skipped" id="row_10_0">10</td>
|
569
569
|
</tr>
|
570
570
|
<tr>
|
571
|
-
<td
|
571
|
+
<td class="failed" colspan="1">
|
572
572
|
<pre>
|
573
573
|
FAIL (RuntimeError)
|
574
574
|
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
@@ -974,7 +974,7 @@ yawn</span>
|
|
974
974
|
<td class="val skipped" id="row_12_1">passing</td>
|
975
975
|
</tr>
|
976
976
|
<tr>
|
977
|
-
<td
|
977
|
+
<td class="failed" colspan="2">
|
978
978
|
<pre>
|
979
979
|
FAIL (RuntimeError)
|
980
980
|
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
@@ -1163,7 +1163,7 @@ features/search_sample.feature:10:in `Given failing without a table'</pre>
|
|
1163
1163
|
<td class="val failed" id="row_16_0">failing</td>
|
1164
1164
|
</tr>
|
1165
1165
|
<tr>
|
1166
|
-
<td
|
1166
|
+
<td class="failed" colspan="1">
|
1167
1167
|
<pre>
|
1168
1168
|
FAIL (RuntimeError)
|
1169
1169
|
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
@@ -1244,7 +1244,7 @@ features/search_sample.feature:13:in `Given <state> without a table'
|
|
1244
1244
|
<td class="val failed" id="row_32_0">failing</td>
|
1245
1245
|
</tr>
|
1246
1246
|
<tr>
|
1247
|
-
<td
|
1247
|
+
<td class="failed" colspan="1">
|
1248
1248
|
<pre>
|
1249
1249
|
FAIL (RuntimeError)
|
1250
1250
|
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
@@ -58,5 +58,14 @@ Feature: JUnit output formatter
|
|
58
58
|
"""
|
59
59
|
And "examples/junit/tmp/TEST-One_passing_scenario__one_failing_scenario.xml" should exist
|
60
60
|
And "examples/junit/tmp/TEST-Pending_step.xml" should exist
|
61
|
-
|
62
|
-
|
61
|
+
|
62
|
+
Scenario: show correct error message if no --out is passed
|
63
|
+
When I run cucumber --format junit features
|
64
|
+
Then STDERR should not match
|
65
|
+
"""
|
66
|
+
can't convert .* into String \(TypeError\)
|
67
|
+
"""
|
68
|
+
And STDERR should match
|
69
|
+
"""
|
70
|
+
You \*must\* specify \-\-out DIR for the junit formatter
|
71
|
+
"""
|
@@ -97,9 +97,9 @@ end
|
|
97
97
|
|
98
98
|
Then /^"([^\"]*)" should have the same contents as "([^\"]*)"$/ do |actual_file, expected_file|
|
99
99
|
actual = IO.read(actual_file)
|
100
|
-
# Comment out to replace expected file. Use with care! Remember to update duration afterwards.
|
101
|
-
# File.open(expected_file, "w"){|io| io.write(actual)}
|
102
100
|
actual = replace_duration(actual, '0m30.005s')
|
101
|
+
# Comment out to replace expected file. Use with care! Remember to update duration afterwards.
|
102
|
+
# File.open(expected_file, "w") {|io| io.write(actual)}
|
103
103
|
actual.should == IO.read(expected_file)
|
104
104
|
end
|
105
105
|
|
@@ -107,6 +107,10 @@ Then /^STDERR should match$/ do |text|
|
|
107
107
|
last_stderr.should =~ /#{text}/
|
108
108
|
end
|
109
109
|
|
110
|
+
Then /^STDERR should not match$/ do |text|
|
111
|
+
last_stderr.should_not =~ /#{text}/
|
112
|
+
end
|
113
|
+
|
110
114
|
Then /^STDERR should be empty$/ do
|
111
115
|
last_stderr.should == ""
|
112
116
|
end
|
data/lib/cucumber/cli/main.rb
CHANGED
@@ -28,7 +28,7 @@ module Cucumber
|
|
28
28
|
|
29
29
|
def initialize(args, out_stream = STDOUT, error_stream = STDERR)
|
30
30
|
@args = args
|
31
|
-
@out_stream = out_stream
|
31
|
+
@out_stream = out_stream == STDOUT ? Formatter::ColorIO.new : out_stream
|
32
32
|
@error_stream = error_stream
|
33
33
|
end
|
34
34
|
|
@@ -37,7 +37,7 @@ module Cucumber
|
|
37
37
|
if DRbClient.run(@args, @error_stream, @out_stream)
|
38
38
|
return false
|
39
39
|
else
|
40
|
-
@
|
40
|
+
@error_stream.puts "WARNING: No DRb server is running. Running features locally:"
|
41
41
|
configuration.parse!(@args)
|
42
42
|
end
|
43
43
|
end
|
@@ -6,7 +6,7 @@ module Cucumber
|
|
6
6
|
class ColorIO
|
7
7
|
extend Forwardable
|
8
8
|
def_delegators :@kernel, :puts, :print # win32console colours only work when sent to Kernel
|
9
|
-
def_delegators :@stdout, :flush, :tty
|
9
|
+
def_delegators :@stdout, :flush, :tty?, :write
|
10
10
|
|
11
11
|
def initialize
|
12
12
|
@kernel = Kernel
|
@@ -20,4 +20,4 @@ module Cucumber
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
23
|
-
end
|
23
|
+
end
|
@@ -11,10 +11,9 @@ module Cucumber
|
|
11
11
|
|
12
12
|
def initialize(step_mother, io, options)
|
13
13
|
super(step_mother)
|
14
|
+
raise "You *must* specify --out DIR for the junit formatter" unless String === io && File.directory?(io)
|
14
15
|
@reportdir = io
|
15
16
|
@options = options
|
16
|
-
raise "You *must* specify --out DIR for the junit formatter" unless @reportdir
|
17
|
-
raise "Use --out DIR (not --out FILE) for the junit formatter" if File === @reportdir
|
18
17
|
end
|
19
18
|
|
20
19
|
def visit_feature(feature)
|
data/lib/cucumber/version.rb
CHANGED
@@ -11,6 +11,7 @@ module Cucumber
|
|
11
11
|
describe Main do
|
12
12
|
before(:each) do
|
13
13
|
@out = StringIO.new
|
14
|
+
@err = StringIO.new
|
14
15
|
Kernel.stub!(:exit).and_return(nil)
|
15
16
|
end
|
16
17
|
|
@@ -97,16 +98,15 @@ module Cucumber
|
|
97
98
|
before(:each) do
|
98
99
|
@configuration = mock('Configuration', :drb? => true, :null_object => true)
|
99
100
|
Configuration.stub!(:new).and_return(@configuration)
|
100
|
-
@error_stream = mock('standard error')
|
101
101
|
|
102
102
|
@args = ['features']
|
103
103
|
|
104
|
-
@cli = Main.new(@args, @out, @
|
104
|
+
@cli = Main.new(@args, @out, @err)
|
105
105
|
@step_mother = mock('StepMother', :null_object => true)
|
106
106
|
end
|
107
107
|
|
108
108
|
it "delegates the execution to the DRB client passing the args and streams" do
|
109
|
-
DRbClient.should_receive(:run).with(@args, @
|
109
|
+
DRbClient.should_receive(:run).with(@args, @err, @out).and_return(true)
|
110
110
|
@cli.execute!(@step_mother)
|
111
111
|
end
|
112
112
|
|
@@ -121,7 +121,7 @@ module Cucumber
|
|
121
121
|
|
122
122
|
it "alerts the user that execution will be performed locally" do
|
123
123
|
@cli.execute!(@step_mother)
|
124
|
-
@
|
124
|
+
@err.string.should include("WARNING: No DRb server is running. Running features locally:")
|
125
125
|
end
|
126
126
|
|
127
127
|
it "reparses the configuration since the --drb flag causes the initial parsing to short circuit" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aslakhellesoy-cucumber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Aslak Helles\xC3\xB8y"
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-06-
|
12
|
+
date: 2009-06-05 00:00:00 -07:00
|
13
13
|
default_executable: cucumber
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|