cucumber 0.10.6 → 0.10.7
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitmodules +3 -0
- data/Gemfile.lock +13 -8
- data/History.md +6 -0
- data/README.md +1 -2
- data/cucumber.gemspec +4 -2
- data/features/bootstrap.feature +1 -0
- data/features/step_definitions/cucumber-features/core_steps.rb +143 -0
- data/features/step_definitions/cucumber_steps.rb +1 -1
- data/features/support/env.rb +10 -14
- data/gem_tasks/stats +14 -0
- data/lib/cucumber/ast/background.rb +7 -5
- data/lib/cucumber/ast/examples.rb +7 -4
- data/lib/cucumber/ast/feature.rb +8 -5
- data/lib/cucumber/ast/feature_element.rb +5 -5
- data/lib/cucumber/ast/names.rb +13 -0
- data/lib/cucumber/ast/scenario.rb +7 -5
- data/lib/cucumber/ast/scenario_outline.rb +15 -12
- data/lib/cucumber/ast/table.rb +0 -1
- data/lib/cucumber/formatter/ansicolor.rb +1 -0
- data/lib/cucumber/formatter/rerun.rb +22 -11
- data/lib/cucumber/parser/gherkin_builder.rb +10 -11
- data/lib/cucumber/platform.rb +1 -1
- data/lib/cucumber/rake/task.rb +9 -0
- data/spec/cucumber/ast/background_spec.rb +10 -5
- data/spec/cucumber/ast/feature_factory.rb +3 -2
- data/spec/cucumber/ast/scenario_outline_spec.rb +2 -1
- data/spec/cucumber/ast/scenario_spec.rb +2 -1
- data/spec/spec_helper.rb +1 -1
- metadata +32 -18
- data/spec/cucumber/rake/task_spec.rb +0 -22
data/.gitmodules
ADDED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cucumber (0.10.
|
4
|
+
cucumber (0.10.7)
|
5
5
|
builder (>= 2.1.2)
|
6
6
|
diff-lcs (>= 1.1.2)
|
7
7
|
gherkin (~> 2.4.0)
|
@@ -11,12 +11,16 @@ PATH
|
|
11
11
|
GEM
|
12
12
|
remote: http://rubygems.org/
|
13
13
|
specs:
|
14
|
-
aruba (0.
|
14
|
+
aruba (0.4.1)
|
15
|
+
bcat (>= 0.6.1)
|
15
16
|
childprocess (>= 0.1.9)
|
16
|
-
cucumber (>= 0.10.
|
17
|
+
cucumber (>= 0.10.7)
|
18
|
+
rdiscount (>= 1.6.8)
|
17
19
|
rspec (>= 2.6.0)
|
20
|
+
bcat (0.6.1)
|
21
|
+
rack (~> 1.0)
|
18
22
|
builder (3.0.0)
|
19
|
-
capybara (1.0.0
|
23
|
+
capybara (1.0.0)
|
20
24
|
mime-types (>= 1.16)
|
21
25
|
nokogiri (>= 1.3.3)
|
22
26
|
rack (>= 1.0.0)
|
@@ -31,10 +35,10 @@ GEM
|
|
31
35
|
json (>= 1.4.6)
|
32
36
|
innate (2011.04)
|
33
37
|
rack (>= 1.1.0)
|
34
|
-
json (1.5.
|
35
|
-
json_pure (1.5.
|
38
|
+
json (1.5.2)
|
39
|
+
json_pure (1.5.2)
|
36
40
|
mime-types (1.16)
|
37
|
-
nokogiri (1.4.
|
41
|
+
nokogiri (1.4.5)
|
38
42
|
prawn (0.8.4)
|
39
43
|
prawn-core (< 0.9, >= 0.8.4)
|
40
44
|
prawn-layout (< 0.9, >= 0.8.4)
|
@@ -85,7 +89,8 @@ PLATFORMS
|
|
85
89
|
ruby
|
86
90
|
|
87
91
|
DEPENDENCIES
|
88
|
-
aruba (>= 0.
|
92
|
+
aruba (>= 0.4.1)
|
93
|
+
bcat (= 0.6.1)
|
89
94
|
capybara (>= 1.0.0.rc1)
|
90
95
|
cucumber!
|
91
96
|
nokogiri (>= 1.4.4)
|
data/History.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## [v0.10.7](https://github.com/cucumber/cucumber/compare/v0.10.6...v0.10.7)
|
2
|
+
|
3
|
+
### New Features
|
4
|
+
* Rake task exits with an error if rcov is true and we're on Ruby 1.9.x (Aslak Hellesøy)
|
5
|
+
* Started implementation of cucumber-features (Mike Sassak, Julien Biezemans, Aslak Hellesøy)
|
6
|
+
|
1
7
|
## [v0.10.6](https://github.com/cucumber/cucumber/compare/v0.10.5...v0.10.6)
|
2
8
|
|
3
9
|
### New Features
|
data/README.md
CHANGED
@@ -16,10 +16,9 @@ The documentation is at https://wiki.github.com/cucumber/cucumber/
|
|
16
16
|
|
17
17
|
gem install bundler
|
18
18
|
bundle install
|
19
|
+
git submodule update --init --recursive
|
19
20
|
rake
|
20
21
|
|
21
|
-
If you get errors about missing gems - just install them.
|
22
|
-
|
23
22
|
## Copyright
|
24
23
|
|
25
24
|
Copyright (c) 2008,2009,2010,2011 Aslak Hellesøy. See LICENSE for details.
|
data/cucumber.gemspec
CHANGED
@@ -29,7 +29,7 @@ for important information about this release. Happy cuking!
|
|
29
29
|
s.add_dependency 'diff-lcs', '>= 1.1.2'
|
30
30
|
s.add_dependency 'json', '>= 1.4.6'
|
31
31
|
|
32
|
-
s.add_development_dependency 'aruba', '>= 0.
|
32
|
+
s.add_development_dependency 'aruba', '>= 0.4.1'
|
33
33
|
s.add_development_dependency 'rake', '>= 0.8.7'
|
34
34
|
s.add_development_dependency 'rspec', '>= 2.6.0'
|
35
35
|
s.add_development_dependency 'nokogiri', '>= 1.4.4'
|
@@ -38,16 +38,18 @@ for important information about this release. Happy cuking!
|
|
38
38
|
s.add_development_dependency 'syntax', '>= 1.0.0'
|
39
39
|
s.add_development_dependency 'spork', '>= 0.9.0.rc7'
|
40
40
|
s.add_development_dependency 'simplecov', '>= 0.4.2'
|
41
|
+
|
41
42
|
# For Documentation:
|
42
43
|
s.add_development_dependency('yard', '= 0.7.1')
|
43
44
|
s.add_development_dependency('rdiscount', '= 1.6.8')
|
45
|
+
s.add_development_dependency('bcat', '= 0.6.1')
|
44
46
|
|
45
47
|
# Needed for examples (rake examples)
|
46
48
|
s.add_development_dependency 'ramaze'
|
47
49
|
s.add_development_dependency 'rack-test', '>= 0.5.7'
|
48
50
|
s.add_development_dependency 'webrat', '>= 0.7.3'
|
49
51
|
s.add_development_dependency 'sinatra', '>= 1.2.6'
|
50
|
-
s.add_development_dependency 'capybara', '>= 1.0.0
|
52
|
+
s.add_development_dependency 'capybara', '>= 1.0.0'
|
51
53
|
|
52
54
|
s.rubygems_version = ">= 1.6.1"
|
53
55
|
s.files = `git ls-files`.split("\n")
|
data/features/bootstrap.feature
CHANGED
@@ -3,6 +3,7 @@ Feature: Bootstrapping a new project
|
|
3
3
|
As a new cucumber user
|
4
4
|
I want cucumber to give helpful error messages in basic situations
|
5
5
|
|
6
|
+
@announce
|
6
7
|
Scenario: running cucumber against a non-existing feature file
|
7
8
|
Given a directory without standard Cucumber project directory structure
|
8
9
|
When I run `cucumber`
|
@@ -0,0 +1,143 @@
|
|
1
|
+
require 'erb'
|
2
|
+
CUCUMBER = File.dirname(__FILE__) + '/../../../bin/cucumber'
|
3
|
+
|
4
|
+
# TODO: Move all of this (except the ruby stepdef specific stepdefs) into cucumber-features
|
5
|
+
# This way all Cucumber implementations can use Aruba/Cucumber 1.x to for testing, and have Aruba reports.
|
6
|
+
module CucumberCoreHelpers
|
7
|
+
def scenario_with_steps(scenario_name, steps)
|
8
|
+
write_file("features/a_feature.feature", <<-EOF)
|
9
|
+
Feature: A feature
|
10
|
+
Scenario: #{scenario_name}
|
11
|
+
#{steps.gsub(/^/, ' ')}
|
12
|
+
EOF
|
13
|
+
end
|
14
|
+
|
15
|
+
def write_feature(feature)
|
16
|
+
write_file("features/a_feature.feature", feature)
|
17
|
+
end
|
18
|
+
|
19
|
+
def write_mappings(mappings)
|
20
|
+
mapping_code = mappings.raw.map do |pattern, result|
|
21
|
+
erb = ERB.new(<<-EOF, nil, '-')
|
22
|
+
Given /<%= pattern -%>/ do
|
23
|
+
<% if result == 'passing' -%>
|
24
|
+
File.open("<%= step_file(pattern) %>", "w")
|
25
|
+
<% elsif result == 'pending' -%>
|
26
|
+
File.open("<%= step_file(pattern) %>", "w")
|
27
|
+
pending
|
28
|
+
<% else -%>
|
29
|
+
File.open("<%= step_file(pattern) %>", "w")
|
30
|
+
raise "bang!"
|
31
|
+
<% end -%>
|
32
|
+
end
|
33
|
+
EOF
|
34
|
+
erb.result(binding)
|
35
|
+
end.join("\n")
|
36
|
+
write_file("features/step_definitions/some_stepdefs.rb", mapping_code)
|
37
|
+
end
|
38
|
+
|
39
|
+
def write_mappings_for_calculator
|
40
|
+
mapping_code = <<-EOF
|
41
|
+
Given /^a calculator$/ do
|
42
|
+
end
|
43
|
+
|
44
|
+
When /^the calculator computes PI$/ do
|
45
|
+
end
|
46
|
+
|
47
|
+
When /^the calculator adds up ([\\d\\.]+) and ([\\d\\.]+)$/ do |arg1, arg2|
|
48
|
+
end
|
49
|
+
|
50
|
+
When /^the calculator adds up "([^"]*)" and "([^"]*)"$/ do |arg1, arg2|
|
51
|
+
end
|
52
|
+
|
53
|
+
When /^the calculator adds up "([^"]*)", "([^"]*)" and "([^"]*)"$/ do |arg1, arg2, arg3|
|
54
|
+
end
|
55
|
+
|
56
|
+
When /^the calculator adds up the following numbers:$/ do |string|
|
57
|
+
end
|
58
|
+
|
59
|
+
Then /^the calculator returns PI$/ do
|
60
|
+
end
|
61
|
+
|
62
|
+
Then /^the calculator returns "([^"]*)"$/ do |arg1|
|
63
|
+
end
|
64
|
+
|
65
|
+
Then /^the calculator does not return ([\\d\\.]+)$/ do |arg1|
|
66
|
+
end
|
67
|
+
|
68
|
+
EOF
|
69
|
+
write_file("features/step_definitions/calculator_mappings.rb", mapping_code)
|
70
|
+
end
|
71
|
+
|
72
|
+
def step_file(pattern)
|
73
|
+
pattern.gsub(/ /, '_') + '.step'
|
74
|
+
end
|
75
|
+
|
76
|
+
def run_scenario(scenario_name)
|
77
|
+
run_simple "#{CUCUMBER} features/a_feature.feature --name '#{scenario_name}'", false
|
78
|
+
end
|
79
|
+
|
80
|
+
def run_feature
|
81
|
+
run_simple "#{CUCUMBER} features/a_feature.feature", false
|
82
|
+
end
|
83
|
+
|
84
|
+
def assert_skipped(pattern)
|
85
|
+
if File.exist?(File.join(current_dir, step_file(pattern)))
|
86
|
+
raise "#{pattern} was not skipped"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
World(CucumberCoreHelpers)
|
92
|
+
|
93
|
+
Given /^a scenario "([^"]*)" with:$/ do |scenario_name, steps|
|
94
|
+
@scenario_name = scenario_name
|
95
|
+
scenario_with_steps(scenario_name, steps)
|
96
|
+
end
|
97
|
+
|
98
|
+
Given /^the following feature:$/ do |feature|
|
99
|
+
write_feature(feature)
|
100
|
+
end
|
101
|
+
|
102
|
+
When /^Cucumber executes "([^"]*)" with these step mappings:$/ do |scenario_name, mappings|
|
103
|
+
write_mappings(mappings)
|
104
|
+
run_scenario(scenario_name)
|
105
|
+
end
|
106
|
+
|
107
|
+
When /^Cucumber runs the feature$/ do
|
108
|
+
run_feature
|
109
|
+
end
|
110
|
+
|
111
|
+
When /^Cucumber runs the scenario with steps for a calculator$/ do
|
112
|
+
write_mappings_for_calculator
|
113
|
+
run_scenario(@scenario_name)
|
114
|
+
end
|
115
|
+
|
116
|
+
Then /^the scenario passes$/ do
|
117
|
+
assert_partial_output("1 scenario (1 passed)", all_stdout)
|
118
|
+
assert_success true
|
119
|
+
end
|
120
|
+
|
121
|
+
Then /^the scenario fails$/ do
|
122
|
+
assert_partial_output("1 scenario (1 failed)", all_stdout)
|
123
|
+
assert_success false
|
124
|
+
end
|
125
|
+
|
126
|
+
Then /^the scenario is pending$/ do
|
127
|
+
assert_partial_output("1 scenario (1 pending)", all_stdout)
|
128
|
+
assert_success true
|
129
|
+
end
|
130
|
+
|
131
|
+
Then /^the scenario is undefined$/ do
|
132
|
+
assert_partial_output("1 scenario (1 undefined)", all_stdout)
|
133
|
+
assert_success true
|
134
|
+
end
|
135
|
+
|
136
|
+
Then /^the step "([^"]*)" is skipped$/ do |pattern|
|
137
|
+
assert_skipped(pattern)
|
138
|
+
end
|
139
|
+
|
140
|
+
Then /^the feature passes$/ do
|
141
|
+
assert_no_partial_output("failed", all_stdout)
|
142
|
+
assert_success true
|
143
|
+
end
|
@@ -4,7 +4,7 @@ end
|
|
4
4
|
|
5
5
|
Then /^it should (pass|fail) with JSON:$/ do |pass_fail, json|
|
6
6
|
JSON.parse(all_stdout).should == JSON.parse(json)
|
7
|
-
|
7
|
+
assert_success(pass_fail == 'pass')
|
8
8
|
end
|
9
9
|
|
10
10
|
Given /^a directory without standard Cucumber project directory structure$/ do
|
data/features/support/env.rb
CHANGED
@@ -1,28 +1,24 @@
|
|
1
|
+
ENV['FORCE_COLOR'] = 'true'
|
1
2
|
require 'aruba/api'
|
3
|
+
require 'aruba/cucumber'
|
2
4
|
|
3
5
|
# Monkey patch aruba to filter out some stuff
|
4
6
|
module Aruba::Api
|
5
|
-
alias
|
7
|
+
alias __all_stdout all_stdout
|
6
8
|
|
7
9
|
def all_stdout
|
8
|
-
|
10
|
+
unrandom(__all_stdout)
|
11
|
+
end
|
9
12
|
|
10
|
-
|
11
|
-
out.gsub!(/#{Dir.pwd}\/tmp\/aruba/, '.')
|
12
|
-
# Make duration predictable
|
13
|
-
out.gsub!(/^\d+m\d+\.\d+s$/, '0m0.012s')
|
14
|
-
# Remove SimpleCov message
|
15
|
-
out.gsub!(/Coverage report generated for Cucumber Features to #{Dir.pwd}\/coverage.*\n$/, '')
|
16
|
-
|
13
|
+
def unrandom(out)
|
17
14
|
out
|
15
|
+
.gsub(/#{Dir.pwd}\/tmp\/aruba/, '.') # Remove absolute paths
|
16
|
+
.gsub(/^\d+m\d+\.\d+s$/, '0m0.012s') # Make duration predictable
|
17
|
+
.gsub(/Coverage report generated for Cucumber Features to #{Dir.pwd}\/coverage.*\n$/, '') # Remove SimpleCov message
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
Before do |scenario|
|
24
|
-
@scenario = scenario
|
25
|
-
|
21
|
+
Before do
|
26
22
|
# Make sure bin/cucumber runs with SimpleCov enabled
|
27
23
|
# set_env('SIMPLECOV', 'true')
|
28
24
|
|
data/gem_tasks/stats
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
echo 'Commits'
|
2
|
+
git log --pretty=format:'' | wc -l
|
3
|
+
|
4
|
+
echo 'Contributors'
|
5
|
+
git log --pretty=short --no-merges | git shortlog -ne | egrep -ve '^ +' | egrep -ve '^$' | wc -l
|
6
|
+
|
7
|
+
echo 'Resolved bugs/feature requests'
|
8
|
+
egrep -e '^\*' History.md | wc -l
|
9
|
+
|
10
|
+
echo 'Open tickets'
|
11
|
+
curl -s http://github.com/api/v2/json/issues/list/cucumber/cucumber/open | ruby -e "require 'json'; puts JSON.parse(STDIN.read)['issues'].length"
|
12
|
+
|
13
|
+
echo 'Group members'
|
14
|
+
curl -s http://groups.google.com/group/cukes | grep Members
|
@@ -1,13 +1,15 @@
|
|
1
1
|
require 'cucumber/ast/feature_element'
|
2
|
+
require 'cucumber/ast/names'
|
2
3
|
|
3
4
|
module Cucumber
|
4
5
|
module Ast
|
5
6
|
class Background #:nodoc:
|
6
7
|
include FeatureElement
|
7
|
-
|
8
|
+
include Names
|
9
|
+
attr_reader :feature_elements
|
8
10
|
|
9
|
-
def initialize(comment, line, keyword,
|
10
|
-
@comment, @line, @keyword, @
|
11
|
+
def initialize(comment, line, keyword, title, description, raw_steps)
|
12
|
+
@comment, @line, @keyword, @title, @description, @raw_steps = comment, line, keyword, title, description, raw_steps
|
11
13
|
@feature_elements = []
|
12
14
|
end
|
13
15
|
|
@@ -32,7 +34,7 @@ module Cucumber
|
|
32
34
|
return if Cucumber.wants_to_quit
|
33
35
|
init
|
34
36
|
visitor.visit_comment(@comment) unless @comment.empty?
|
35
|
-
visitor.visit_background_name(@keyword,
|
37
|
+
visitor.visit_background_name(@keyword, name, file_colon_line(@line), source_indent(first_line_length))
|
36
38
|
with_visitor(hook_context, visitor) do
|
37
39
|
visitor.step_mother.before(hook_context)
|
38
40
|
skip_invoke! if failed?
|
@@ -79,7 +81,7 @@ module Cucumber
|
|
79
81
|
def to_sexp
|
80
82
|
init
|
81
83
|
sexp = [:background, @line, @keyword]
|
82
|
-
sexp += [
|
84
|
+
sexp += [name] unless name.empty?
|
83
85
|
comment = @comment.to_sexp
|
84
86
|
sexp += [comment] if comment
|
85
87
|
steps = @steps.to_sexp
|
@@ -1,10 +1,13 @@
|
|
1
|
+
require 'cucumber/ast/names'
|
2
|
+
|
1
3
|
module Cucumber
|
2
4
|
module Ast
|
3
5
|
class Examples #:nodoc:
|
6
|
+
include Names
|
4
7
|
attr_writer :outline_table
|
5
8
|
|
6
|
-
def initialize(comment, line, keyword,
|
7
|
-
@comment, @keyword, @
|
9
|
+
def initialize(comment, line, keyword, title, description, outline_table)
|
10
|
+
@comment, @keyword, @title, @description, @outline_table = comment, keyword, title, description, outline_table
|
8
11
|
end
|
9
12
|
|
10
13
|
attr_reader :gherkin_statement
|
@@ -15,7 +18,7 @@ module Cucumber
|
|
15
18
|
def accept(visitor)
|
16
19
|
return if Cucumber.wants_to_quit
|
17
20
|
visitor.visit_comment(@comment) unless @comment.empty?
|
18
|
-
visitor.visit_examples_name(@keyword,
|
21
|
+
visitor.visit_examples_name(@keyword, name)
|
19
22
|
visitor.visit_outline_table(@outline_table)
|
20
23
|
end
|
21
24
|
|
@@ -32,7 +35,7 @@ module Cucumber
|
|
32
35
|
end
|
33
36
|
|
34
37
|
def to_sexp
|
35
|
-
sexp = [:examples, @keyword,
|
38
|
+
sexp = [:examples, @keyword, name]
|
36
39
|
comment = @comment.to_sexp
|
37
40
|
sexp += [comment] if comment
|
38
41
|
sexp += [@outline_table.to_sexp]
|
data/lib/cucumber/ast/feature.rb
CHANGED
@@ -1,14 +1,17 @@
|
|
1
|
+
require 'cucumber/ast/names'
|
2
|
+
|
1
3
|
module Cucumber
|
2
4
|
module Ast
|
3
5
|
# Represents the root node of a parsed feature.
|
4
6
|
class Feature #:nodoc:
|
7
|
+
include Names
|
8
|
+
|
5
9
|
attr_accessor :language
|
6
10
|
attr_writer :features, :background
|
7
11
|
attr_reader :file
|
8
|
-
attr_reader :name
|
9
12
|
|
10
|
-
def initialize(background, comment, tags, keyword,
|
11
|
-
@background, @comment, @tags, @keyword, @
|
13
|
+
def initialize(background, comment, tags, keyword, title, description, feature_elements)
|
14
|
+
@background, @comment, @tags, @keyword, @title, @description, @feature_elements = background, comment, tags, keyword, title, description, feature_elements
|
12
15
|
end
|
13
16
|
|
14
17
|
attr_reader :gherkin_statement
|
@@ -43,7 +46,7 @@ module Cucumber
|
|
43
46
|
|
44
47
|
def indented_name
|
45
48
|
indent = ""
|
46
|
-
|
49
|
+
name.split("\n").map do |l|
|
47
50
|
s = "#{indent}#{l}"
|
48
51
|
indent = " "
|
49
52
|
s
|
@@ -89,7 +92,7 @@ module Cucumber
|
|
89
92
|
|
90
93
|
def to_sexp
|
91
94
|
init
|
92
|
-
sexp = [:feature, @file,
|
95
|
+
sexp = [:feature, @file, name]
|
93
96
|
comment = @comment.to_sexp
|
94
97
|
sexp += [comment] if comment
|
95
98
|
tags = @tags.to_sexp
|
@@ -6,7 +6,7 @@ module Cucumber
|
|
6
6
|
module FeatureElement #:nodoc:
|
7
7
|
attr_accessor :feature
|
8
8
|
|
9
|
-
attr_reader :gherkin_statement, :raw_steps
|
9
|
+
attr_reader :gherkin_statement, :raw_steps, :title, :description
|
10
10
|
def gherkin_statement(statement=nil)
|
11
11
|
@gherkin_statement ||= statement
|
12
12
|
end
|
@@ -32,10 +32,10 @@ module Cucumber
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def name_line_lengths
|
35
|
-
if
|
35
|
+
if name.strip.empty?
|
36
36
|
[Ast::Step::INDENT + @keyword.unpack('U*').length + ': '.length]
|
37
37
|
else
|
38
|
-
|
38
|
+
name.split("\n").enum_for(:each_with_index).map do |line, line_number|
|
39
39
|
if line_number == 0
|
40
40
|
Ast::Step::INDENT + @keyword.unpack('U*').length + ': '.length + line.unpack('U*').length
|
41
41
|
else
|
@@ -46,10 +46,10 @@ module Cucumber
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def matches_scenario_names?(scenario_name_regexps)
|
49
|
-
scenario_name_regexps.detect{|
|
49
|
+
scenario_name_regexps.detect{|n| n =~ name}
|
50
50
|
end
|
51
51
|
|
52
|
-
def backtrace_line(name = "#{@keyword}: #{
|
52
|
+
def backtrace_line(name = "#{@keyword}: #{name}", line = @line)
|
53
53
|
@feature.backtrace_line(name, line) if @feature
|
54
54
|
end
|
55
55
|
|
@@ -1,11 +1,13 @@
|
|
1
1
|
require 'cucumber/ast/feature_element'
|
2
|
+
require 'cucumber/ast/names'
|
2
3
|
|
3
4
|
module Cucumber
|
4
5
|
module Ast
|
5
6
|
class Scenario #:nodoc:
|
6
7
|
include FeatureElement
|
8
|
+
include Names
|
7
9
|
|
8
|
-
attr_reader :
|
10
|
+
attr_reader :line
|
9
11
|
|
10
12
|
class EmptyBackground
|
11
13
|
def failed?
|
@@ -24,9 +26,9 @@ module Cucumber
|
|
24
26
|
end
|
25
27
|
end
|
26
28
|
|
27
|
-
def initialize(background, comment, tags, line, keyword,
|
29
|
+
def initialize(background, comment, tags, line, keyword, title, description, raw_steps)
|
28
30
|
@background = background || EmptyBackground.new
|
29
|
-
@comment, @tags, @line, @keyword, @
|
31
|
+
@comment, @tags, @line, @keyword, @title, @description, @raw_steps = comment, tags, line, keyword, title, description, raw_steps
|
30
32
|
@exception = @executed = nil
|
31
33
|
end
|
32
34
|
|
@@ -45,7 +47,7 @@ module Cucumber
|
|
45
47
|
with_visitor(visitor) do
|
46
48
|
visitor.visit_comment(@comment) unless @comment.empty?
|
47
49
|
visitor.visit_tags(@tags)
|
48
|
-
visitor.visit_scenario_name(@keyword,
|
50
|
+
visitor.visit_scenario_name(@keyword, name, file_colon_line(@line), source_indent(first_line_length))
|
49
51
|
|
50
52
|
skip_invoke! if @background.failed?
|
51
53
|
visitor.step_mother.with_hooks(self, skip_hooks?) do
|
@@ -90,7 +92,7 @@ module Cucumber
|
|
90
92
|
end
|
91
93
|
|
92
94
|
def to_sexp
|
93
|
-
sexp = [:scenario, @line, @keyword,
|
95
|
+
sexp = [:scenario, @line, @keyword, name]
|
94
96
|
comment = @comment.to_sexp
|
95
97
|
sexp += [comment] if comment
|
96
98
|
tags = @tags.to_sexp
|
@@ -1,10 +1,12 @@
|
|
1
|
+
require 'cucumber/ast/feature_element'
|
2
|
+
require 'cucumber/ast/names'
|
3
|
+
|
1
4
|
module Cucumber
|
2
5
|
module Ast
|
3
6
|
class ScenarioOutline #:nodoc:
|
4
7
|
include FeatureElement
|
8
|
+
include Names
|
5
9
|
|
6
|
-
attr_reader :name
|
7
|
-
|
8
10
|
module ExamplesArray #:nodoc:
|
9
11
|
def accept(visitor)
|
10
12
|
return if Cucumber.wants_to_quit
|
@@ -20,8 +22,8 @@ module Cucumber
|
|
20
22
|
# * Examples keyword
|
21
23
|
# * Examples section name
|
22
24
|
# * Raw matrix
|
23
|
-
def initialize(background, comment, tags, line, keyword,
|
24
|
-
@background, @comment, @tags, @line, @keyword, @
|
25
|
+
def initialize(background, comment, tags, line, keyword, title, description, raw_steps, example_sections)
|
26
|
+
@background, @comment, @tags, @line, @keyword, @title, @description, @raw_steps, @example_sections = background, comment, tags, line, keyword, title, description, raw_steps, example_sections
|
25
27
|
end
|
26
28
|
|
27
29
|
def add_examples(example_section, gherkin_examples)
|
@@ -37,14 +39,15 @@ module Cucumber
|
|
37
39
|
example_section = example_section_and_gherkin_examples[0]
|
38
40
|
gherkin_examples = example_section_and_gherkin_examples[1]
|
39
41
|
|
40
|
-
examples_comment
|
41
|
-
examples_line
|
42
|
-
examples_keyword
|
43
|
-
|
44
|
-
|
42
|
+
examples_comment = example_section[0]
|
43
|
+
examples_line = example_section[1]
|
44
|
+
examples_keyword = example_section[2]
|
45
|
+
examples_title = example_section[3]
|
46
|
+
examples_description = example_section[4]
|
47
|
+
examples_matrix = example_section[5]
|
45
48
|
|
46
49
|
examples_table = OutlineTable.new(examples_matrix, self)
|
47
|
-
ex = Examples.new(examples_comment, examples_line, examples_keyword,
|
50
|
+
ex = Examples.new(examples_comment, examples_line, examples_keyword, examples_title, examples_description, examples_table)
|
48
51
|
ex.gherkin_statement(gherkin_examples)
|
49
52
|
ex
|
50
53
|
end
|
@@ -58,7 +61,7 @@ module Cucumber
|
|
58
61
|
return if Cucumber.wants_to_quit
|
59
62
|
visitor.visit_comment(@comment) unless @comment.empty?
|
60
63
|
visitor.visit_tags(@tags)
|
61
|
-
visitor.visit_scenario_name(@keyword,
|
64
|
+
visitor.visit_scenario_name(@keyword, name, file_colon_line(@line), source_indent(first_line_length))
|
62
65
|
visitor.visit_steps(@steps)
|
63
66
|
|
64
67
|
skip_invoke! if @background && @background.failed?
|
@@ -107,7 +110,7 @@ module Cucumber
|
|
107
110
|
|
108
111
|
def to_sexp
|
109
112
|
init
|
110
|
-
sexp = [:scenario_outline, @keyword,
|
113
|
+
sexp = [:scenario_outline, @keyword, name]
|
111
114
|
comment = @comment.to_sexp
|
112
115
|
sexp += [comment] if comment
|
113
116
|
tags = @tags.to_sexp
|
data/lib/cucumber/ast/table.rb
CHANGED
@@ -21,17 +21,21 @@ module Cucumber
|
|
21
21
|
@file_names = []
|
22
22
|
@file_colon_lines = Hash.new{|h,k| h[k] = []}
|
23
23
|
end
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
24
|
+
|
25
|
+
def before_feature(*)
|
26
|
+
@lines = []
|
27
|
+
@file = nil
|
28
|
+
end
|
29
|
+
|
30
|
+
def after_feature(*)
|
31
|
+
after_first_time do
|
32
|
+
@io.print ' '
|
30
33
|
end
|
31
|
-
@io.
|
32
|
-
|
33
|
-
# Flusing output to rerun tempfile here...
|
34
|
+
@io.print "#{@file}:#{@lines.join(':')}"
|
34
35
|
@io.flush
|
36
|
+
end
|
37
|
+
|
38
|
+
def after_features(features)
|
35
39
|
@io.close
|
36
40
|
end
|
37
41
|
|
@@ -42,14 +46,21 @@ module Cucumber
|
|
42
46
|
def after_feature_element(feature_element)
|
43
47
|
if @rerun
|
44
48
|
file, line = *feature_element.file_colon_line.split(':')
|
45
|
-
@
|
46
|
-
@
|
49
|
+
@lines << line
|
50
|
+
@file = file
|
47
51
|
end
|
48
52
|
end
|
49
53
|
|
50
54
|
def step_name(keyword, step_match, status, source_indent, background)
|
51
55
|
@rerun = true if [:failed, :pending, :undefined].index(status)
|
52
56
|
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
def after_first_time
|
61
|
+
yield if @not_first_time
|
62
|
+
@not_first_time = true
|
63
|
+
end
|
53
64
|
end
|
54
65
|
end
|
55
66
|
end
|
@@ -19,7 +19,8 @@ module Cucumber
|
|
19
19
|
Ast::Comment.new(feature.comments.map{|comment| comment.value}.join("\n")),
|
20
20
|
Ast::Tags.new(nil, feature.tags.map{|tag| tag.name}),
|
21
21
|
feature.keyword,
|
22
|
-
|
22
|
+
feature.name.lstrip,
|
23
|
+
feature.description.rstrip,
|
23
24
|
[]
|
24
25
|
)
|
25
26
|
@feature.gherkin_statement(feature)
|
@@ -31,7 +32,8 @@ module Cucumber
|
|
31
32
|
Ast::Comment.new(background.comments.map{|comment| comment.value}.join("\n")),
|
32
33
|
background.line,
|
33
34
|
background.keyword,
|
34
|
-
|
35
|
+
background.name,
|
36
|
+
background.description,
|
35
37
|
steps=[]
|
36
38
|
)
|
37
39
|
@feature.background = @background
|
@@ -47,7 +49,8 @@ module Cucumber
|
|
47
49
|
Ast::Tags.new(nil, statement.tags.map{|tag| tag.name}),
|
48
50
|
statement.line,
|
49
51
|
statement.keyword,
|
50
|
-
|
52
|
+
statement.name,
|
53
|
+
statement.description,
|
51
54
|
steps=[]
|
52
55
|
)
|
53
56
|
@feature.add_feature_element(scenario)
|
@@ -63,7 +66,8 @@ module Cucumber
|
|
63
66
|
Ast::Tags.new(nil, statement.tags.map{|tag| tag.name}),
|
64
67
|
statement.line,
|
65
68
|
statement.keyword,
|
66
|
-
|
69
|
+
statement.name,
|
70
|
+
statement.description,
|
67
71
|
steps=[],
|
68
72
|
example_sections=[]
|
69
73
|
)
|
@@ -81,7 +85,8 @@ module Cucumber
|
|
81
85
|
Ast::Comment.new(examples.comments.map{|comment| comment.value}.join("\n")),
|
82
86
|
examples.line,
|
83
87
|
examples.keyword,
|
84
|
-
|
88
|
+
examples.name,
|
89
|
+
examples.description,
|
85
90
|
matrix(examples.rows)
|
86
91
|
]
|
87
92
|
@step_container.add_examples(examples_fields, examples)
|
@@ -109,12 +114,6 @@ module Cucumber
|
|
109
114
|
|
110
115
|
private
|
111
116
|
|
112
|
-
def legacy_name_for(name, description)
|
113
|
-
s = name
|
114
|
-
s += "\n#{description}" if description != ""
|
115
|
-
s
|
116
|
-
end
|
117
|
-
|
118
117
|
def matrix(gherkin_table)
|
119
118
|
gherkin_table.map do |gherkin_row|
|
120
119
|
row = gherkin_row.cells
|
data/lib/cucumber/platform.rb
CHANGED
@@ -4,7 +4,7 @@ require 'rbconfig'
|
|
4
4
|
|
5
5
|
module Cucumber
|
6
6
|
unless defined?(Cucumber::VERSION)
|
7
|
-
VERSION = '0.10.
|
7
|
+
VERSION = '0.10.7'
|
8
8
|
BINARY = File.expand_path(File.dirname(__FILE__) + '/../../bin/cucumber')
|
9
9
|
LIBDIR = File.expand_path(File.dirname(__FILE__) + '/../../lib')
|
10
10
|
JRUBY = defined?(JRUBY_VERSION)
|
data/lib/cucumber/rake/task.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'cucumber/platform'
|
2
|
+
require 'gherkin/formatter/ansi_escapes'
|
2
3
|
|
3
4
|
begin
|
4
5
|
# Support Rake > 0.8.7
|
@@ -32,6 +33,8 @@ module Cucumber
|
|
32
33
|
#
|
33
34
|
# See the attributes for additional configuration possibilities.
|
34
35
|
class Task
|
36
|
+
include Gherkin::Formatter::AnsiEscapes
|
37
|
+
|
35
38
|
class InProcessCucumberRunner #:nodoc:
|
36
39
|
attr_reader :args
|
37
40
|
|
@@ -137,6 +140,12 @@ module Cucumber
|
|
137
140
|
# Run cucumber with RCov? Defaults to false. If you set this to
|
138
141
|
# true, +fork+ is implicit.
|
139
142
|
attr_accessor :rcov
|
143
|
+
def rcov=(flag)
|
144
|
+
if(flag && Cucumber::RUBY_1_9)
|
145
|
+
raise failed + "RCov only works on Ruby 1.8.x. You may want to use SimpleCov: https://github.com/colszowka/simplecov" + reset
|
146
|
+
end
|
147
|
+
@rcov = flag
|
148
|
+
end
|
140
149
|
|
141
150
|
# Extra options to pass to rcov.
|
142
151
|
# It's recommended to pass an Array, but if it's a String it will be #split by ' '.
|
@@ -29,7 +29,8 @@ module Cucumber
|
|
29
29
|
comment=Comment.new(''),
|
30
30
|
line=2,
|
31
31
|
keyword="",
|
32
|
-
|
32
|
+
title="",
|
33
|
+
description="",
|
33
34
|
steps=[
|
34
35
|
Step.new(7, "Given", "y is 5")
|
35
36
|
])
|
@@ -40,7 +41,8 @@ module Cucumber
|
|
40
41
|
tags=Tags.new(98,[]),
|
41
42
|
line=99,
|
42
43
|
keyword="",
|
43
|
-
|
44
|
+
title="",
|
45
|
+
description="",
|
44
46
|
steps=[]
|
45
47
|
)
|
46
48
|
background.feature = @feature
|
@@ -55,7 +57,8 @@ module Cucumber
|
|
55
57
|
comment=Comment.new(''),
|
56
58
|
line=2,
|
57
59
|
keyword="",
|
58
|
-
|
60
|
+
title="background name",
|
61
|
+
description="",
|
59
62
|
steps=[])
|
60
63
|
lambda{ background.name }.should_not raise_error
|
61
64
|
background.name.should == 'background name'
|
@@ -65,7 +68,8 @@ module Cucumber
|
|
65
68
|
comment=Comment.new(''),
|
66
69
|
line=2,
|
67
70
|
keyword="",
|
68
|
-
|
71
|
+
title="",
|
72
|
+
description="",
|
69
73
|
steps=[])
|
70
74
|
lambda{ background.name }.should_not raise_error
|
71
75
|
end
|
@@ -85,7 +89,8 @@ module Cucumber
|
|
85
89
|
comment=Comment.new(''),
|
86
90
|
line=2,
|
87
91
|
keyword="",
|
88
|
-
|
92
|
+
title="",
|
93
|
+
description="",
|
89
94
|
steps=[
|
90
95
|
Step.new(7, "Given", "y is 5")
|
91
96
|
])
|
@@ -26,7 +26,7 @@ module Cucumber
|
|
26
26
|
])
|
27
27
|
doc_string = Ast::DocString.new(%{\n I like\nCucumber sandwich\n})
|
28
28
|
|
29
|
-
background = Ast::Background.new(Ast::Comment.new(""), 2, "Background:", "",
|
29
|
+
background = Ast::Background.new(Ast::Comment.new(""), 2, "Background:", "", "",
|
30
30
|
[
|
31
31
|
Step.new(3, "Given", "a passing step")
|
32
32
|
]
|
@@ -38,12 +38,13 @@ module Cucumber
|
|
38
38
|
Ast::Tags.new(6, ['one', 'two']),
|
39
39
|
"Feature",
|
40
40
|
"Pretty printing",
|
41
|
+
"",
|
41
42
|
[Ast::Scenario.new(
|
42
43
|
background,
|
43
44
|
Ast::Comment.new(" # My scenario comment \n# On two lines \n"),
|
44
45
|
Ast::Tags.new(8, ['three', 'four']),
|
45
46
|
9,
|
46
|
-
"Scenario:", "A Scenario",
|
47
|
+
"Scenario:", "A Scenario", "",
|
47
48
|
[
|
48
49
|
Step.new(10, "Given", "a passing step with an inline arg:", table),
|
49
50
|
Step.new(11, "Given", "a happy step with an inline arg:", doc_string),
|
@@ -31,7 +31,7 @@ module Cucumber
|
|
31
31
|
Comment.new(""),
|
32
32
|
Tags.new(18, []),
|
33
33
|
19,
|
34
|
-
"Scenario:", "My outline",
|
34
|
+
"Scenario:", "My outline", "",
|
35
35
|
[
|
36
36
|
Step.new(20, 'Given', 'there are <start> cucumbers'),
|
37
37
|
Step.new(21, 'When', 'I eat <eat> cucumbers'),
|
@@ -45,6 +45,7 @@ module Cucumber
|
|
45
45
|
24,
|
46
46
|
'Examples:',
|
47
47
|
'First table',
|
48
|
+
'',
|
48
49
|
[
|
49
50
|
%w{start eat left},
|
50
51
|
%w{12 5 7},
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: cucumber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.10.
|
5
|
+
version: 0.10.7
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- "Aslak Helles\xC3\xB8y"
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-06-
|
13
|
+
date: 2011-06-17 00:00:00 +01:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
requirements:
|
77
77
|
- - ">="
|
78
78
|
- !ruby/object:Gem::Version
|
79
|
-
version: 0.
|
79
|
+
version: 0.4.1
|
80
80
|
type: :development
|
81
81
|
version_requirements: *id006
|
82
82
|
- !ruby/object:Gem::Dependency
|
@@ -190,60 +190,71 @@ dependencies:
|
|
190
190
|
type: :development
|
191
191
|
version_requirements: *id016
|
192
192
|
- !ruby/object:Gem::Dependency
|
193
|
-
name:
|
193
|
+
name: bcat
|
194
194
|
prerelease: false
|
195
195
|
requirement: &id017 !ruby/object:Gem::Requirement
|
196
196
|
none: false
|
197
197
|
requirements:
|
198
|
-
- - "
|
198
|
+
- - "="
|
199
199
|
- !ruby/object:Gem::Version
|
200
|
-
version:
|
200
|
+
version: 0.6.1
|
201
201
|
type: :development
|
202
202
|
version_requirements: *id017
|
203
203
|
- !ruby/object:Gem::Dependency
|
204
|
-
name:
|
204
|
+
name: ramaze
|
205
205
|
prerelease: false
|
206
206
|
requirement: &id018 !ruby/object:Gem::Requirement
|
207
207
|
none: false
|
208
208
|
requirements:
|
209
209
|
- - ">="
|
210
210
|
- !ruby/object:Gem::Version
|
211
|
-
version: 0
|
211
|
+
version: "0"
|
212
212
|
type: :development
|
213
213
|
version_requirements: *id018
|
214
214
|
- !ruby/object:Gem::Dependency
|
215
|
-
name:
|
215
|
+
name: rack-test
|
216
216
|
prerelease: false
|
217
217
|
requirement: &id019 !ruby/object:Gem::Requirement
|
218
218
|
none: false
|
219
219
|
requirements:
|
220
220
|
- - ">="
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: 0.7
|
222
|
+
version: 0.5.7
|
223
223
|
type: :development
|
224
224
|
version_requirements: *id019
|
225
225
|
- !ruby/object:Gem::Dependency
|
226
|
-
name:
|
226
|
+
name: webrat
|
227
227
|
prerelease: false
|
228
228
|
requirement: &id020 !ruby/object:Gem::Requirement
|
229
229
|
none: false
|
230
230
|
requirements:
|
231
231
|
- - ">="
|
232
232
|
- !ruby/object:Gem::Version
|
233
|
-
version:
|
233
|
+
version: 0.7.3
|
234
234
|
type: :development
|
235
235
|
version_requirements: *id020
|
236
236
|
- !ruby/object:Gem::Dependency
|
237
|
-
name:
|
237
|
+
name: sinatra
|
238
238
|
prerelease: false
|
239
239
|
requirement: &id021 !ruby/object:Gem::Requirement
|
240
240
|
none: false
|
241
241
|
requirements:
|
242
242
|
- - ">="
|
243
243
|
- !ruby/object:Gem::Version
|
244
|
-
version: 1.
|
244
|
+
version: 1.2.6
|
245
245
|
type: :development
|
246
246
|
version_requirements: *id021
|
247
|
+
- !ruby/object:Gem::Dependency
|
248
|
+
name: capybara
|
249
|
+
prerelease: false
|
250
|
+
requirement: &id022 !ruby/object:Gem::Requirement
|
251
|
+
none: false
|
252
|
+
requirements:
|
253
|
+
- - ">="
|
254
|
+
- !ruby/object:Gem::Version
|
255
|
+
version: 1.0.0
|
256
|
+
type: :development
|
257
|
+
version_requirements: *id022
|
247
258
|
description: Behaviour Driven Development with elegance and joy
|
248
259
|
email: cukes@googlegroups.com
|
249
260
|
executables:
|
@@ -255,6 +266,7 @@ extra_rdoc_files: []
|
|
255
266
|
files:
|
256
267
|
- .gitattributes
|
257
268
|
- .gitignore
|
269
|
+
- .gitmodules
|
258
270
|
- .rspec
|
259
271
|
- .rvmrc
|
260
272
|
- .travis.yml
|
@@ -523,6 +535,7 @@ files:
|
|
523
535
|
- features/iso-8859-1.feature
|
524
536
|
- features/json_formatter.feature
|
525
537
|
- features/stats_formatters.feature
|
538
|
+
- features/step_definitions/cucumber-features/core_steps.rb
|
526
539
|
- features/step_definitions/cucumber_steps.rb
|
527
540
|
- features/step_definitions/iso-8859-1_steps.rb
|
528
541
|
- features/support/env.rb
|
@@ -604,6 +617,7 @@ files:
|
|
604
617
|
- gem_tasks/flog.rake
|
605
618
|
- gem_tasks/rspec.rake
|
606
619
|
- gem_tasks/sass.rake
|
620
|
+
- gem_tasks/stats
|
607
621
|
- gem_tasks/versions.txt
|
608
622
|
- gem_tasks/yard.rake
|
609
623
|
- gem_tasks/yard/default/layout/html/bubble_32x32.png
|
@@ -682,6 +696,7 @@ files:
|
|
682
696
|
- lib/cucumber/ast/feature.rb
|
683
697
|
- lib/cucumber/ast/feature_element.rb
|
684
698
|
- lib/cucumber/ast/features.rb
|
699
|
+
- lib/cucumber/ast/names.rb
|
685
700
|
- lib/cucumber/ast/outline_table.rb
|
686
701
|
- lib/cucumber/ast/scenario.rb
|
687
702
|
- lib/cucumber/ast/scenario_outline.rb
|
@@ -797,7 +812,6 @@ files:
|
|
797
812
|
- spec/cucumber/formatter/spec_helper.rb
|
798
813
|
- spec/cucumber/rake/forked_spec.rb
|
799
814
|
- spec/cucumber/rake/rcov_spec.rb
|
800
|
-
- spec/cucumber/rake/task_spec.rb
|
801
815
|
- spec/cucumber/rb_support/rb_language_spec.rb
|
802
816
|
- spec/cucumber/rb_support/rb_step_definition_spec.rb
|
803
817
|
- spec/cucumber/rb_support/rb_transform_spec.rb
|
@@ -820,7 +834,7 @@ licenses: []
|
|
820
834
|
|
821
835
|
post_install_message: "\n\
|
822
836
|
(::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::)\n\n\
|
823
|
-
Thank you for installing cucumber-0.10.
|
837
|
+
Thank you for installing cucumber-0.10.7.\n\
|
824
838
|
Please be sure to read http://wiki.github.com/cucumber/cucumber/upgrading\n\
|
825
839
|
for important information about this release. Happy cuking!\n\n\
|
826
840
|
(::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::)\n\n"
|
@@ -846,7 +860,7 @@ rubyforge_project:
|
|
846
860
|
rubygems_version: 1.6.2
|
847
861
|
signing_key:
|
848
862
|
specification_version: 3
|
849
|
-
summary: cucumber-0.10.
|
863
|
+
summary: cucumber-0.10.7
|
850
864
|
test_files:
|
851
865
|
- features/background.feature
|
852
866
|
- features/bootstrap.feature
|
@@ -856,6 +870,7 @@ test_files:
|
|
856
870
|
- features/iso-8859-1.feature
|
857
871
|
- features/json_formatter.feature
|
858
872
|
- features/stats_formatters.feature
|
873
|
+
- features/step_definitions/cucumber-features/core_steps.rb
|
859
874
|
- features/step_definitions/cucumber_steps.rb
|
860
875
|
- features/step_definitions/iso-8859-1_steps.rb
|
861
876
|
- features/support/env.rb
|
@@ -887,7 +902,6 @@ test_files:
|
|
887
902
|
- spec/cucumber/formatter/spec_helper.rb
|
888
903
|
- spec/cucumber/rake/forked_spec.rb
|
889
904
|
- spec/cucumber/rake/rcov_spec.rb
|
890
|
-
- spec/cucumber/rake/task_spec.rb
|
891
905
|
- spec/cucumber/rb_support/rb_language_spec.rb
|
892
906
|
- spec/cucumber/rb_support/rb_step_definition_spec.rb
|
893
907
|
- spec/cucumber/rb_support/rb_transform_spec.rb
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
2
|
-
require 'cucumber/rake/task'
|
3
|
-
require 'rake'
|
4
|
-
|
5
|
-
module Cucumber
|
6
|
-
module Rake
|
7
|
-
|
8
|
-
describe Task do
|
9
|
-
|
10
|
-
context "when running rcov" do
|
11
|
-
let(:task) { Task.new { |t| t.rcov = true } }
|
12
|
-
|
13
|
-
it "correctly builds an RCovCucumberRunner" do
|
14
|
-
runner = task.runner
|
15
|
-
runner.should be_a(Task::RCovCucumberRunner)
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
|
-
end
|