cucumber 0.3.9 → 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 +40 -0
- data/Manifest.txt +10 -0
- data/cucumber.yml +1 -1
- data/examples/i18n/pl/Rakefile +6 -0
- data/examples/i18n/pl/features/addition.feature +16 -0
- data/examples/i18n/pl/features/division.feature +9 -0
- data/examples/i18n/pl/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/pl/features/support/env.rb +6 -0
- data/examples/i18n/pl/lib/calculator.rb +14 -0
- data/examples/self_test/features/sample.feature +2 -0
- data/features/cucumber_cli.feature +24 -6
- data/features/drb_server_integration.feature +92 -0
- data/features/html_formatter/a.html +926 -437
- data/features/junit_formatter.feature +11 -2
- data/features/step_definitions/cucumber_steps.rb +15 -2
- data/features/support/env.rb +35 -1
- data/features/usage.feature +2 -2
- data/lib/cucumber/ast/background.rb +1 -1
- data/lib/cucumber/ast/comment.rb +4 -0
- data/lib/cucumber/ast/feature.rb +2 -1
- data/lib/cucumber/ast/outline_table.rb +2 -2
- data/lib/cucumber/ast/scenario.rb +1 -1
- data/lib/cucumber/ast/scenario_outline.rb +11 -4
- data/lib/cucumber/ast/step_invocation.rb +17 -12
- data/lib/cucumber/ast/visitor.rb +4 -0
- data/lib/cucumber/cli/configuration.rb +32 -8
- data/lib/cucumber/cli/drb_client.rb +21 -0
- data/lib/cucumber/cli/main.rb +9 -0
- data/lib/cucumber/formatter/color_io.rb +2 -2
- data/lib/cucumber/formatter/console.rb +1 -3
- data/lib/cucumber/formatter/html.rb +63 -12
- data/lib/cucumber/formatter/junit.rb +2 -2
- data/lib/cucumber/formatter/pretty.rb +2 -1
- data/lib/cucumber/formatter/rerun.rb +1 -0
- data/lib/cucumber/formatter/tag_cloud.rb +1 -0
- data/lib/cucumber/rails/rspec.rb +5 -3
- data/lib/cucumber/rake/task.rb +1 -1
- data/lib/cucumber/step_match.rb +6 -2
- data/lib/cucumber/step_mother.rb +11 -8
- data/lib/cucumber/version.rb +1 -1
- data/rails_generators/cucumber/cucumber_generator.rb +12 -2
- data/rails_generators/cucumber/templates/cucumber.rake +1 -1
- data/rails_generators/cucumber/templates/cucumber_environment.rb +6 -4
- data/rails_generators/cucumber/templates/env.rb +10 -3
- data/rails_generators/cucumber/templates/spork_env.rb +36 -0
- data/rails_generators/cucumber/templates/webrat_steps.rb +8 -0
- data/spec/cucumber/cli/configuration_spec.rb +56 -1
- data/spec/cucumber/cli/drb_client_spec.rb +42 -0
- data/spec/cucumber/cli/main_spec.rb +64 -19
- metadata +12 -2
@@ -130,6 +130,14 @@ Then /^the "([^\"]*)" checkbox should be checked$/ do |label|
|
|
130
130
|
<% end -%>
|
131
131
|
end
|
132
132
|
|
133
|
+
Then /^the "([^\"]*)" checkbox should not be checked$/ do |label|
|
134
|
+
<% if framework == :rspec -%>
|
135
|
+
field_labeled(label).should_not be_checked
|
136
|
+
<% else -%>
|
137
|
+
assert !field_labeled(label).checked?
|
138
|
+
<% end -%>
|
139
|
+
end
|
140
|
+
|
133
141
|
Then /^I should be on (.+)$/ do |page_name|
|
134
142
|
<% if framework == :rspec -%>
|
135
143
|
URI.parse(current_url).path.should == path_to(page_name)
|
@@ -83,6 +83,61 @@ module Cli
|
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
86
|
+
describe '#drb?' do
|
87
|
+
it "indicates whether the --drb flag was passed in or not" do
|
88
|
+
config = Configuration.new(StringIO.new)
|
89
|
+
|
90
|
+
config.parse!(%w{features})
|
91
|
+
config.drb?.should == false
|
92
|
+
|
93
|
+
|
94
|
+
config.parse!(%w{features --drb})
|
95
|
+
config.drb?.should == true
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
context '--drb' do
|
100
|
+
it "removes the --drb flag from the args" do
|
101
|
+
config = Configuration.new(StringIO.new)
|
102
|
+
|
103
|
+
args = %w{features --drb}
|
104
|
+
config.parse!(args)
|
105
|
+
args.should == %w{features}
|
106
|
+
end
|
107
|
+
|
108
|
+
it "keeps all other flags intact" do
|
109
|
+
config = Configuration.new(StringIO.new)
|
110
|
+
|
111
|
+
args = %w{features --drb --format profile}
|
112
|
+
config.parse!(args)
|
113
|
+
args.should == %w{features --format profile}
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
117
|
+
|
118
|
+
context '--drb in a profile' do
|
119
|
+
it "removes the --drb flag from the args" do
|
120
|
+
given_cucumber_yml_defined_as({'server' => '--drb features'})
|
121
|
+
config = Configuration.new(StringIO.new)
|
122
|
+
|
123
|
+
args = %w{--profile server}
|
124
|
+
config.parse!(args)
|
125
|
+
args.should == %w{features}
|
126
|
+
end
|
127
|
+
|
128
|
+
it "keeps all other flags intact from all profiles involved" do
|
129
|
+
given_cucumber_yml_defined_as({'server' => '--drb features --profile nested',
|
130
|
+
'nested' => '--verbose'})
|
131
|
+
|
132
|
+
config = Configuration.new(StringIO.new)
|
133
|
+
|
134
|
+
args = %w{--profile server --format profile}
|
135
|
+
config.parse!(args)
|
136
|
+
args.should == %w{features --verbose --format profile}
|
137
|
+
end
|
138
|
+
|
139
|
+
end
|
140
|
+
|
86
141
|
it "should expand args from YAML file" do
|
87
142
|
given_cucumber_yml_defined_as({'bongo' => '--require from/yml'})
|
88
143
|
|
@@ -156,7 +211,7 @@ END_OF_MESSAGE
|
|
156
211
|
expected_error_message = /cucumber.yml was found, but could not be parsed. Please refer to cucumber's documentation on correct profile usage./
|
157
212
|
|
158
213
|
given_cucumber_yml_defined_as("input that causes an exception in YAML loading")
|
159
|
-
YAML.should_receive(:load).and_raise
|
214
|
+
YAML.should_receive(:load).and_raise ArgumentError
|
160
215
|
|
161
216
|
config = Configuration.new(StringIO.new, error = StringIO.new)
|
162
217
|
lambda{config.parse!([])}.should raise_error(expected_error_message)
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
|
4
|
+
module Cucumber
|
5
|
+
module Cli
|
6
|
+
describe DRbClient do
|
7
|
+
before(:each) do
|
8
|
+
@args = ['features']
|
9
|
+
@error_stream = StringIO.new
|
10
|
+
@out_stream = StringIO.new
|
11
|
+
|
12
|
+
@drb_object = mock('DRbObject', :run => true)
|
13
|
+
DRbObject.stub!(:new_with_uri).and_return(@drb_object)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "starts up a druby service" do
|
17
|
+
DRb.should_receive(:start_service).with("druby://localhost:0")
|
18
|
+
DRbClient.run(@args, @error_stream, @out_stream)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "connects to the DRb server" do
|
22
|
+
DRbObject.should_receive(:new_with_uri).with("druby://127.0.0.1:8990")
|
23
|
+
DRbClient.run(@args, @error_stream, @out_stream)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "runs the fearures on the DRb server" do
|
27
|
+
@drb_object.should_receive(:run).with(@args, @error_stream, @out_stream)
|
28
|
+
DRbClient.run(@args, @error_stream, @out_stream)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "returns false when it can't connect to the server" do
|
32
|
+
DRbObject.stub!(:new_with_uri).and_raise(DRb::DRbConnError)
|
33
|
+
DRbClient.run(@args, @error_stream, @out_stream).should be_false
|
34
|
+
end
|
35
|
+
|
36
|
+
it "returns true when it connects to the server and runs the features" do
|
37
|
+
DRbClient.run(@args, @error_stream, @out_stream).should be_true
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -11,11 +11,12 @@ 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
|
|
17
18
|
describe "verbose mode" do
|
18
|
-
|
19
|
+
|
19
20
|
before(:each) do
|
20
21
|
@empty_feature = Ast::Feature.new(nil, Ast::Comment.new(''), Ast::Tags.new(2, []), "Feature", [])
|
21
22
|
Dir.stub!(:[])
|
@@ -24,56 +25,56 @@ module Cucumber
|
|
24
25
|
it "should show ruby files required" do
|
25
26
|
@cli = Main.new(%w{--verbose --require example.rb}, @out)
|
26
27
|
@cli.stub!(:require)
|
27
|
-
|
28
|
+
|
28
29
|
@cli.execute!(Object.new.extend(StepMother))
|
29
|
-
|
30
|
+
|
30
31
|
@out.string.should include('example.rb')
|
31
32
|
end
|
32
|
-
|
33
|
+
|
33
34
|
it "should show feature files parsed" do
|
34
35
|
@cli = Main.new(%w{--verbose example.feature}, @out)
|
35
36
|
@cli.stub!(:require)
|
36
|
-
|
37
|
+
|
37
38
|
Parser::FeatureParser.stub!(:new).and_return(mock("feature parser", :parse_file => @empty_feature))
|
38
|
-
|
39
|
+
|
39
40
|
@cli.execute!(Object.new.extend(StepMother))
|
40
41
|
|
41
42
|
@out.string.should include('example.feature')
|
42
43
|
end
|
43
|
-
|
44
|
+
|
44
45
|
end
|
45
46
|
|
46
47
|
describe "diffing" do
|
47
48
|
|
48
49
|
before :each do
|
49
|
-
@configuration = mock('Configuration', :null_object => true)
|
50
|
+
@configuration = mock('Configuration', :null_object => true, :drb? => false)
|
50
51
|
Configuration.should_receive(:new).and_return(@configuration)
|
51
|
-
|
52
|
+
|
52
53
|
@step_mother = mock('StepMother', :null_object => true)
|
53
|
-
|
54
|
+
|
54
55
|
@cli = Main.new(nil, @out)
|
55
56
|
end
|
56
|
-
|
57
|
+
|
57
58
|
it "uses Spec Differ::Default when diff is enabled" do
|
58
59
|
@configuration.should_receive(:diff_enabled?).and_return(true)
|
59
|
-
|
60
|
+
|
60
61
|
::Spec::Expectations::Differs::Default.should_receive(:new)
|
61
|
-
|
62
|
+
|
62
63
|
@cli.execute!(@step_mother)
|
63
64
|
end
|
64
|
-
|
65
|
+
|
65
66
|
it "does not use Spec Differ::Default when diff is disabled" do
|
66
67
|
@configuration.should_receive(:diff_enabled?).and_return(false)
|
67
|
-
|
68
|
+
|
68
69
|
::Spec::Expectations::Differs::Default.should_not_receive(:new)
|
69
|
-
|
70
|
+
|
70
71
|
@cli.execute!(@step_mother)
|
71
72
|
end
|
72
|
-
|
73
|
+
|
73
74
|
end
|
74
75
|
|
75
76
|
describe "--format with class" do
|
76
|
-
|
77
|
+
|
77
78
|
describe "in module" do
|
78
79
|
|
79
80
|
it "should resolve each module until it gets Formatter class" do
|
@@ -90,8 +91,52 @@ module Cucumber
|
|
90
91
|
cli.execute!(Object.new.extend(StepMother))
|
91
92
|
end
|
92
93
|
|
93
|
-
end
|
94
|
+
end
|
94
95
|
end
|
96
|
+
|
97
|
+
context "--drb" do
|
98
|
+
before(:each) do
|
99
|
+
@configuration = mock('Configuration', :drb? => true, :null_object => true)
|
100
|
+
Configuration.stub!(:new).and_return(@configuration)
|
101
|
+
|
102
|
+
@args = ['features']
|
103
|
+
|
104
|
+
@cli = Main.new(@args, @out, @err)
|
105
|
+
@step_mother = mock('StepMother', :null_object => true)
|
106
|
+
end
|
107
|
+
|
108
|
+
it "delegates the execution to the DRB client passing the args and streams" do
|
109
|
+
DRbClient.should_receive(:run).with(@args, @err, @out).and_return(true)
|
110
|
+
@cli.execute!(@step_mother)
|
111
|
+
end
|
112
|
+
|
113
|
+
it "ceases execution if the DrbClient is able to perform the execution" do
|
114
|
+
DRbClient.stub!(:run).and_return(true)
|
115
|
+
@configuration.should_not_receive(:load_language)
|
116
|
+
@cli.execute!(@step_mother)
|
117
|
+
end
|
118
|
+
|
119
|
+
context "when the DrbClient is unable to perfrom the execution" do
|
120
|
+
before { DRbClient.stub!(:run).and_return(false) }
|
121
|
+
|
122
|
+
it "alerts the user that execution will be performed locally" do
|
123
|
+
@cli.execute!(@step_mother)
|
124
|
+
@err.string.should include("WARNING: No DRb server is running. Running features locally:")
|
125
|
+
end
|
126
|
+
|
127
|
+
it "reparses the configuration since the --drb flag causes the initial parsing to short circuit" do
|
128
|
+
@configuration.should_receive(:parse!).exactly(:twice)
|
129
|
+
@cli.execute!(@step_mother)
|
130
|
+
end
|
131
|
+
|
132
|
+
it "proceeds with the execution locally" do
|
133
|
+
@configuration.should_receive(:load_language)
|
134
|
+
@cli.execute!(@step_mother)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
end
|
139
|
+
|
95
140
|
end
|
96
141
|
end
|
97
142
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: 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-05
|
12
|
+
date: 2009-06-05 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -192,6 +192,12 @@ files:
|
|
192
192
|
- examples/i18n/no/features/summering.feature
|
193
193
|
- examples/i18n/no/features/support/env.rb
|
194
194
|
- examples/i18n/no/lib/kalkulator.rb
|
195
|
+
- examples/i18n/pl/Rakefile
|
196
|
+
- examples/i18n/pl/features/addition.feature
|
197
|
+
- examples/i18n/pl/features/division.feature
|
198
|
+
- examples/i18n/pl/features/step_definitons/calculator_steps.rb
|
199
|
+
- examples/i18n/pl/features/support/env.rb
|
200
|
+
- examples/i18n/pl/lib/calculator.rb
|
195
201
|
- examples/i18n/pt/Rakefile
|
196
202
|
- examples/i18n/pt/features/adicao.feature
|
197
203
|
- examples/i18n/pt/features/step_definitions/calculadora_steps.rb
|
@@ -321,6 +327,7 @@ files:
|
|
321
327
|
- features/cucumber_cli_diff_disabled.feature
|
322
328
|
- features/cucumber_cli_outlines.feature
|
323
329
|
- features/custom_formatter.feature
|
330
|
+
- features/drb_server_integration.feature
|
324
331
|
- features/exclude_files.feature
|
325
332
|
- features/expand.feature
|
326
333
|
- features/html_formatter.feature
|
@@ -369,6 +376,7 @@ files:
|
|
369
376
|
- lib/cucumber/ast/visitor.rb
|
370
377
|
- lib/cucumber/broadcaster.rb
|
371
378
|
- lib/cucumber/cli/configuration.rb
|
379
|
+
- lib/cucumber/cli/drb_client.rb
|
372
380
|
- lib/cucumber/cli/language_help_formatter.rb
|
373
381
|
- lib/cucumber/cli/main.rb
|
374
382
|
- lib/cucumber/core_ext/exception.rb
|
@@ -416,6 +424,7 @@ files:
|
|
416
424
|
- rails_generators/cucumber/templates/cucumber_environment.rb
|
417
425
|
- rails_generators/cucumber/templates/env.rb
|
418
426
|
- rails_generators/cucumber/templates/paths.rb
|
427
|
+
- rails_generators/cucumber/templates/spork_env.rb
|
419
428
|
- rails_generators/cucumber/templates/webrat_steps.rb
|
420
429
|
- rails_generators/feature/USAGE
|
421
430
|
- rails_generators/feature/feature_generator.rb
|
@@ -434,6 +443,7 @@ files:
|
|
434
443
|
- spec/cucumber/ast/visitor_spec.rb
|
435
444
|
- spec/cucumber/broadcaster_spec.rb
|
436
445
|
- spec/cucumber/cli/configuration_spec.rb
|
446
|
+
- spec/cucumber/cli/drb_client_spec.rb
|
437
447
|
- spec/cucumber/cli/main_spec.rb
|
438
448
|
- spec/cucumber/core_ext/proc_spec.rb
|
439
449
|
- spec/cucumber/core_ext/string_spec.rb
|