square-cucumber 0.3.12.2 → 0.3.93.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +117 -4
- data/Manifest.txt +11 -0
- data/Rakefile +1 -1
- data/config/hoe.rb +3 -2
- data/cucumber.yml +2 -2
- data/examples/i18n/ko/features/addition.feature +5 -5
- data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +1 -1
- data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +1 -1
- data/examples/i18n/pt/features/adicao.feature +4 -4
- data/examples/self_test/features/support/env.rb +2 -1
- data/examples/sinatra/features/support/env.rb +7 -1
- data/examples/steps_library/features/step_definitions/steps_lib1.rb +8 -0
- data/examples/steps_library/features/step_definitions/steps_lib2.rb +8 -0
- data/examples/tickets/features/step_definitons/tickets_steps.rb +15 -0
- data/examples/tickets/features/table_diffing.feature +13 -0
- data/examples/watir/features/step_definitons/search_steps.rb +5 -1
- data/features/cucumber_cli_diff_disabled.feature +2 -1
- data/features/html_formatter/a.html +5 -7
- data/features/junit_formatter.feature +21 -14
- data/features/profiles.feature +99 -0
- data/features/rake_task.feature +28 -0
- data/features/step_definitions/cucumber_steps.rb +28 -15
- data/features/steps_formatter.feature +25 -0
- data/features/support/env.rb +9 -5
- data/features/table_diffing.feature +45 -0
- data/features/unicode_table.feature +35 -0
- data/features/work_in_progress.feature +1 -0
- data/gem_tasks/contributors.rake +4 -0
- data/lib/cucumber/ast/background.rb +1 -0
- data/lib/cucumber/ast/comment.rb +1 -0
- data/lib/cucumber/ast/examples.rb +1 -0
- data/lib/cucumber/ast/feature.rb +10 -0
- data/lib/cucumber/ast/features.rb +6 -1
- data/lib/cucumber/ast/outline_table.rb +4 -1
- data/lib/cucumber/ast/py_string.rb +1 -1
- data/lib/cucumber/ast/scenario.rb +1 -0
- data/lib/cucumber/ast/scenario_outline.rb +2 -0
- data/lib/cucumber/ast/step.rb +5 -1
- data/lib/cucumber/ast/step_collection.rb +1 -0
- data/lib/cucumber/ast/step_invocation.rb +1 -0
- data/lib/cucumber/ast/table.rb +306 -52
- data/lib/cucumber/ast/tags.rb +1 -0
- data/lib/cucumber/ast/visitor.rb +2 -1
- data/lib/cucumber/cli/configuration.rb +28 -278
- data/lib/cucumber/cli/drb_client.rb +3 -1
- data/lib/cucumber/cli/language_help_formatter.rb +9 -7
- data/lib/cucumber/cli/main.rb +16 -2
- data/lib/cucumber/cli/options.rb +370 -0
- data/lib/cucumber/cli/profile_loader.rb +65 -0
- data/lib/cucumber/core_ext/instance_exec.rb +8 -5
- data/lib/cucumber/feature_file.rb +7 -1
- data/lib/cucumber/filter.rb +2 -2
- data/lib/cucumber/formatter/ansicolor.rb +42 -9
- data/lib/cucumber/formatter/console.rb +1 -1
- data/lib/cucumber/formatter/html.rb +12 -10
- data/lib/cucumber/formatter/junit.rb +63 -26
- data/lib/cucumber/formatter/pretty.rb +20 -5
- data/lib/cucumber/formatter/progress.rb +1 -1
- data/lib/cucumber/formatter/steps.rb +49 -0
- data/lib/cucumber/languages.yml +6 -6
- data/lib/cucumber/parser/feature.rb +90 -63
- data/lib/cucumber/parser/feature.tt +28 -1
- data/lib/cucumber/parser/i18n/language.rb +12 -5
- data/lib/cucumber/parser/table.rb +25 -25
- data/lib/cucumber/rake/task.rb +9 -3
- data/lib/cucumber/step_definition.rb +1 -1
- data/lib/cucumber/step_match.rb +1 -1
- data/lib/cucumber/step_mother.rb +3 -1
- data/lib/cucumber/version.rb +2 -2
- data/lib/cucumber/webrat/table_locator.rb +66 -0
- data/rails_generators/cucumber/cucumber_generator.rb +5 -1
- data/rails_generators/cucumber/templates/cucumber +3 -2
- data/rails_generators/cucumber/templates/cucumber.rake +18 -6
- data/rails_generators/cucumber/templates/cucumber_environment.rb +7 -4
- data/rails_generators/cucumber/templates/env.rb +1 -0
- data/rails_generators/cucumber/templates/spork_env.rb +1 -0
- data/rails_generators/cucumber/templates/webrat_steps.rb +22 -0
- data/rails_generators/feature/templates/feature.erb +1 -1
- data/rails_generators/feature/templates/steps.erb +2 -8
- data/spec/cucumber/ast/table_spec.rb +169 -0
- data/spec/cucumber/cli/configuration_spec.rb +144 -101
- data/spec/cucumber/cli/main_spec.rb +14 -5
- data/spec/cucumber/cli/options_spec.rb +311 -0
- data/spec/cucumber/cli/profile_loader_spec.rb +10 -0
- data/spec/cucumber/core_ext/proc_spec.rb +16 -2
- data/spec/cucumber/formatter/html_spec.rb +18 -0
- data/spec/cucumber/formatter/progress_spec.rb +2 -2
- data/spec/cucumber/parser/table_parser_spec.rb +1 -1
- data/spec/spec.opts +3 -1
- metadata +18 -4
- data/lib/cucumber/webrat/mechanize_world.rb +0 -82
data/History.txt
CHANGED
@@ -1,12 +1,76 @@
|
|
1
|
-
==
|
1
|
+
== (In Git)
|
2
2
|
|
3
|
-
|
3
|
+
=== New features
|
4
|
+
* script/generate cucumber sets up 'cucumber:ok' and 'cucumber:wip' tasks and deprecates 'features'. More Kanban love. (#344 Aslak Hellesøy)
|
5
|
+
* Better JUnit formatter: feature->testsuite, scenario->testcase. Better timing and support for background and scenario outline. (Mads Buus Westmark)
|
6
|
+
* Added examples/python that uses rubypython. (Aslak Hellesøy)
|
7
|
+
* Checks the number of available colors on the terminal with ruby-terminfo if ruby-terminfo is installed.
|
8
|
+
This prevents Apple's Terminal.app from stalling (Yugui - Yuki Sonoda).
|
9
|
+
* Set 'xterm-256color' to TERM if your terminal supports grey.
|
10
|
+
* ruby-terminfo is available as genki-ruby-terminfo gem from github.
|
11
|
+
* Document builtin formatters with --help. (#406 Aslak Hellesøy)
|
12
|
+
* Added support for using regular expressions when mapping table headers. (Peter Williams)
|
13
|
+
|
14
|
+
== 0.3.93 2009-08-03
|
15
|
+
|
16
|
+
Highlights in this release: Improved profile handling (cucumber.yml) and a fix for cucumber hanging.
|
17
|
+
|
18
|
+
=== New features
|
19
|
+
* script/generate cucumber --spork now sets up a spork gem dependency in the cucumber.rb environment. (Aslak Hellesøy)
|
20
|
+
* Feature files defined on the command line override any that are present in profiles. (#344 Ben Mabey)
|
21
|
+
* Default (STDOUT) formatter defined in profile can be overridden from the command line. (#344 Ben Mabey)
|
22
|
+
* Displays which profile, if any, is being used. (Ben Mabey)
|
23
|
+
* click_link_within(parent, link) webrat step (Joakim Kolsjö)
|
24
|
+
|
25
|
+
=== Bugfixes
|
26
|
+
* script/cucumber correctly loads the gem's binary if the plugin isn't installed.
|
27
|
+
* Cucumber hangs waiting for Ctrl+C if an Error is raised (#374 Aslak Hellesøy)
|
28
|
+
|
29
|
+
== 0.3.92 2009-07-29
|
30
|
+
|
31
|
+
This release has some minor improvements to the new Table.diff! functionality. For example,
|
32
|
+
if you're using Webrat and you want to compare a feature table with a HTML table containing
|
33
|
+
links in one of the columns, you can do:
|
34
|
+
|
35
|
+
actual = Cucumber::Ast::Table.new(table_at('table').to_a)
|
36
|
+
actual.map_column!('Name') { |text| text.strip.match(/>(.*)</)[1] }
|
37
|
+
table.diff!(actual)
|
38
|
+
|
39
|
+
=== New features
|
40
|
+
* Allow Step Definitions to accept mix of required & optional args (Niels Ganser)
|
41
|
+
* table_a.diff!(table_b) now uses column conversions from both tables (Table#map_column!) (Aslak Hellesøy)
|
42
|
+
|
43
|
+
=== Bugfixes
|
44
|
+
* Upgrade Sinatra example to work with rack-test 0.3.0 and aslakhellesoy-webrat 0.4.4.1 (Aslak Hellesøy)
|
45
|
+
* require 'cucumber/webrat/table_locator' added to Spork environment for Rails (Anders Furseth)
|
46
|
+
|
47
|
+
=== Changed Features
|
48
|
+
* The 'default' profile is now ALWAYS used unless you specify another profile or use the -P or --no-profile flag. (#344 Ben Mabey)
|
49
|
+
|
50
|
+
== 0.3.91 2009-07-27
|
51
|
+
|
52
|
+
=== New Features
|
53
|
+
* CTRL-C will exit immediately instead of carrying on until all features are run. (Aslak Hellesøy)
|
54
|
+
* Run can be stopped programmatically by setting $cucumber_interrupted = true, for example in an After block. (Aslak Hellesøy)
|
55
|
+
* Table support for cuke4duke
|
56
|
+
|
57
|
+
|
58
|
+
== 0.3.90 2009-07-22
|
59
|
+
|
60
|
+
The Hot summer release
|
61
|
+
|
62
|
+
This is a hot summer in Norway, and Cucumbers are growing in abundance. To celebrate this we give you
|
63
|
+
a new release with lots of new features and bugfixes. This is also one of the last releases in the 0.3 series
|
64
|
+
(hence the 0.3.90 number), so 0.4 (or maybe 1.0!) will be coming up soon. The highlights of this release are:
|
65
|
+
|
66
|
+
=== Egality
|
4
67
|
|
5
68
|
English is not the world's most spoken language, so why should Cucumber force non-English speakers to use the
|
6
69
|
--language flag? As of this release you're no longer forced to do that. Instead, you can add a comment header
|
7
70
|
to your .feature files:
|
8
71
|
|
9
72
|
# language: fr
|
73
|
+
# Cucumber understands that this is French
|
10
74
|
Fonctionnalité: Trou de boulette
|
11
75
|
|
12
76
|
If you don't have that header, Cucumber will work as before - using whatever you specified with --language,
|
@@ -14,6 +78,45 @@ or default to English if no --language option was specified. A nice side effect
|
|
14
78
|
have features in several languages side by side and run them in the same cucumber. (Not recommended unless
|
15
79
|
you want to take polyglot programming to an extreme level).
|
16
80
|
|
81
|
+
=== Table diffing (experimental)
|
82
|
+
|
83
|
+
When you pass a table as an argument to your Then steps you often want to compare that table
|
84
|
+
to some actual values. In previous releases you had to iterate over the table's values and manually
|
85
|
+
compare each row using cell.should equal('foo') or assert_equal('foo', cell). If a discrepancy was found
|
86
|
+
you'd get an error, but it was hard to see how the entire expected data set was different from the actual one.
|
87
|
+
|
88
|
+
With this release you have a much more powerful way to compare expected tables with actual data. An
|
89
|
+
Ast::Table object now has a new #diff!(table) method that you can invoke in your step definitions
|
90
|
+
that take table arguments. If the table you pass in is different from the expected table (from your
|
91
|
+
plain text step), Cucumber will print the difference for each of the row or column and fail your step.
|
92
|
+
|
93
|
+
The Table#diff! method expects an Array of Array, Array of Hash (similar to what you'd get from table#hashes)
|
94
|
+
or simply another Ast::Table object. Here is a simple example:
|
95
|
+
|
96
|
+
Then /^I should see the following cukes:$/ do |expected_cukes_table|
|
97
|
+
actual_table = ... # For example [['Latin', 'English'], ['Cucumis sativus', 'Cucumber'], ['Cucumis anguria', 'Burr Gherkin']]
|
98
|
+
expected_cukes_table.diff!(actual_table)
|
99
|
+
end
|
100
|
+
|
101
|
+
As an extra bonus we provide Webrat users with a new #table_at(selector) method that you can use to transform
|
102
|
+
an HTML table into an Array of Array, so that you can easily compare the contents of your HTML table to
|
103
|
+
expected data passed to a step. Here is an example:
|
104
|
+
|
105
|
+
Then /^I should see the following cukes:$/ do |expected_cukes_table|
|
106
|
+
expected_cukes_table.diff!(table_at('#cuke_table').to_a)
|
107
|
+
end
|
108
|
+
|
109
|
+
You can do the same trick to compare data from a Rails ActiveRecord table (although this is not a
|
110
|
+
recommended practice - your Then steps should compare against what users *see*, not what's in the
|
111
|
+
database):
|
112
|
+
|
113
|
+
# This requires that you use the column names in the header of the plain text expected table
|
114
|
+
Then /^I should have the following cukes in the database:$/ do |expected_cukes_table|
|
115
|
+
expected_cukes_table.diff!(Cuke.find(:all).map(&attributes))
|
116
|
+
end
|
117
|
+
|
118
|
+
=== Environment variables
|
119
|
+
|
17
120
|
Another useful new feature is the ability to define environment variables on Cucumber's command line (just
|
18
121
|
like you can with Rake). Example:
|
19
122
|
|
@@ -22,10 +125,13 @@ like you can with Rake). Example:
|
|
22
125
|
You can now pick up ENV['FOO'] in ruby (for example in env.rb) and take actions according to the value,
|
23
126
|
for example enabling your super hack that validates all HTTP responses for XHTML validity.
|
24
127
|
|
25
|
-
This release also has several bugfixes related to --format and Before/
|
128
|
+
This release also has several bugfixes related to --format and Before/After hooks.
|
26
129
|
|
27
130
|
=== Bugfixes
|
28
|
-
*
|
131
|
+
* Fix some misspellings which affect test fail for Korean example (#373 Dongju Kim)
|
132
|
+
* Make it possible to write non-localized step definitions (#377 Aslak Hellesøy)
|
133
|
+
* Table cells containing unicode are rendered incorrectly (#386 Stefan Kanev)
|
134
|
+
* Before and After hooks run after everything is finished when there are 2+ --format options (#371 Aslak Hellesøy)
|
29
135
|
* When using --out and two --format the first is not delivered inline with execution of features (#361 Aslak Hellesøy)
|
30
136
|
* Profile Formatter broken (#370 Aslak Hellesøy)
|
31
137
|
* Default profile usage with --drb flag degrades gracefully with no server. (#367 Ben Mabey)
|
@@ -33,15 +139,22 @@ This release also has several bugfixes related to --format and Before/Adter hook
|
|
33
139
|
* rake gems no longer lists cucumber as a [F]ramework gem (David Chelimsky)
|
34
140
|
* CLI issues correct exit code when using --drb. Requires Spork version >= 0.5.1. (#355 Ben Mabey)
|
35
141
|
* Make sure script/generate cucumber --spork uses the cucumber Rails environment (Philippe Lafoucrière)
|
142
|
+
* Fixed bug with rake task raising errors with feature files with spaces (#380 Joseph Wilk)
|
36
143
|
|
37
144
|
=== New Features
|
145
|
+
* I should see should support regexes (#382 John Ferlito)
|
146
|
+
* Access to scenario outline name from After hook scenario parameter (#342 Aslak Hellesøy)
|
147
|
+
* Allow multiple --tags switches to be passed
|
148
|
+
* Load step definitions from vendored gems and plugins (#388 Mike Burns)
|
38
149
|
* New --format steps formatter. Variant of the usage formatter that lists available step definitions (Demetrius Nunes)
|
39
150
|
* Possibility to specify scenario language as part of the .feature file (#345 Aslak Hellesøy)
|
40
151
|
* Support specifying environment variables using foo=bar syntax on command line or in profiles (#362 Bryan Helmkamp)
|
41
152
|
* Display failing scenarios at the end of pretty format to make it easier for people to play them back (#360 Ryan Bigg)
|
42
153
|
|
43
154
|
=== Changed Features
|
155
|
+
* When using --tags, positive tags are &&'ed while negative tags are ||'ed (John Wilger)
|
44
156
|
* The data returned from Table#hashes and similar methods are frozen. Dup if you need to modify. (Aslak Hellesøy)
|
157
|
+
* Visitor.visit_table_cell_value(value, col_width, status) is now visitor.visit_table_cell_value(value, status)
|
45
158
|
|
46
159
|
== 0.3.11 2009-06-05
|
47
160
|
|
data/Manifest.txt
CHANGED
@@ -239,6 +239,7 @@ examples/tickets/features/step_definitons/246_steps.rb
|
|
239
239
|
examples/tickets/features/step_definitons/248_steps.rb
|
240
240
|
examples/tickets/features/step_definitons/scenario_outline_steps.rb
|
241
241
|
examples/tickets/features/step_definitons/tickets_steps.rb
|
242
|
+
examples/tickets/features/table_diffing.feature
|
242
243
|
examples/tickets/features/tickets.feature
|
243
244
|
examples/watir/README.textile
|
244
245
|
examples/watir/Rakefile
|
@@ -261,6 +262,7 @@ features/html_formatter/a.html
|
|
261
262
|
features/junit_formatter.feature
|
262
263
|
features/language_from_header.feature
|
263
264
|
features/multiline_names.feature
|
265
|
+
features/profiles.feature
|
264
266
|
features/rake_task.feature
|
265
267
|
features/report_called_undefined_steps.feature
|
266
268
|
features/snippet.feature
|
@@ -268,8 +270,11 @@ features/step_definitions/cucumber_steps.rb
|
|
268
270
|
features/step_definitions/extra_steps.rb
|
269
271
|
features/steps_formatter.feature
|
270
272
|
features/support/env.rb
|
273
|
+
features/table_diffing.feature
|
274
|
+
features/unicode_table.feature
|
271
275
|
features/usage.feature
|
272
276
|
features/work_in_progress.feature
|
277
|
+
gem_tasks/contributors.rake
|
273
278
|
gem_tasks/deployment.rake
|
274
279
|
gem_tasks/environment.rake
|
275
280
|
gem_tasks/features.rake
|
@@ -308,6 +313,8 @@ lib/cucumber/cli/configuration.rb
|
|
308
313
|
lib/cucumber/cli/drb_client.rb
|
309
314
|
lib/cucumber/cli/language_help_formatter.rb
|
310
315
|
lib/cucumber/cli/main.rb
|
316
|
+
lib/cucumber/cli/options.rb
|
317
|
+
lib/cucumber/cli/profile_loader.rb
|
311
318
|
lib/cucumber/core_ext/exception.rb
|
312
319
|
lib/cucumber/core_ext/instance_exec.rb
|
313
320
|
lib/cucumber/core_ext/proc.rb
|
@@ -349,6 +356,7 @@ lib/cucumber/step_definition.rb
|
|
349
356
|
lib/cucumber/step_match.rb
|
350
357
|
lib/cucumber/step_mother.rb
|
351
358
|
lib/cucumber/version.rb
|
359
|
+
lib/cucumber/webrat/table_locator.rb
|
352
360
|
lib/cucumber/world.rb
|
353
361
|
rails_generators/cucumber/USAGE
|
354
362
|
rails_generators/cucumber/cucumber_generator.rb
|
@@ -378,11 +386,14 @@ spec/cucumber/broadcaster_spec.rb
|
|
378
386
|
spec/cucumber/cli/configuration_spec.rb
|
379
387
|
spec/cucumber/cli/drb_client_spec.rb
|
380
388
|
spec/cucumber/cli/main_spec.rb
|
389
|
+
spec/cucumber/cli/options_spec.rb
|
390
|
+
spec/cucumber/cli/profile_loader_spec.rb
|
381
391
|
spec/cucumber/core_ext/proc_spec.rb
|
382
392
|
spec/cucumber/core_ext/string_spec.rb
|
383
393
|
spec/cucumber/formatter/ansicolor_spec.rb
|
384
394
|
spec/cucumber/formatter/color_io_spec.rb
|
385
395
|
spec/cucumber/formatter/duration_spec.rb
|
396
|
+
spec/cucumber/formatter/html_spec.rb
|
386
397
|
spec/cucumber/formatter/progress_spec.rb
|
387
398
|
spec/cucumber/parser/feature_parser_spec.rb
|
388
399
|
spec/cucumber/parser/table_parser_spec.rb
|
data/Rakefile
CHANGED
@@ -6,4 +6,4 @@ Dir['gem_tasks/**/*.rake'].each { |rake| load rake }
|
|
6
6
|
|
7
7
|
# Hoe gives us :default => :test, but we don't have Test::Unit tests.
|
8
8
|
Rake::Task[:default].clear_prerequisites rescue nil # For some super weird reason this fails for some...
|
9
|
-
task :default => [:spec, :
|
9
|
+
task :default => [:spec, :cucumber]
|
data/config/hoe.rb
CHANGED
@@ -48,7 +48,8 @@ end
|
|
48
48
|
|
49
49
|
# Generate all the Rake tasks
|
50
50
|
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
51
|
-
$hoe = Hoe.
|
51
|
+
$hoe = Hoe.spec(GEM_NAME) do |p|
|
52
|
+
p.version = VERS
|
52
53
|
p.developer(AUTHOR, EMAIL)
|
53
54
|
p.description = DESCRIPTION
|
54
55
|
p.summary = DESCRIPTION
|
@@ -61,7 +62,7 @@ $hoe = Hoe.new(GEM_NAME, VERS) do |p|
|
|
61
62
|
#p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
|
62
63
|
p.extra_deps = [
|
63
64
|
['term-ansicolor', '>= 1.0.3'],
|
64
|
-
['treetop', '>= 1.
|
65
|
+
['treetop', '>= 1.3.0'],
|
65
66
|
['diff-lcs', '>= 1.1.2'],
|
66
67
|
['builder', '>= 2.1.2']
|
67
68
|
]
|
data/cucumber.yml
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
default: --format progress
|
2
|
-
wip: --tags @
|
1
|
+
default: --format progress --tags ~@proposed,~@wip --strict features
|
2
|
+
wip: --tags @wip --wip features
|
@@ -4,11 +4,11 @@
|
|
4
4
|
수학을 잘 못하는 사람으로써
|
5
5
|
두숫자의 합을 알고 싶다
|
6
6
|
|
7
|
-
|
8
|
-
조건 계산기에
|
9
|
-
그리고 계산기에
|
10
|
-
만일 내가
|
11
|
-
그러면 화면에 출력된 결과는
|
7
|
+
시나리오 개요: 두 숫자를 더하기
|
8
|
+
조건 계산기에 <입력1>을 입력했음
|
9
|
+
그리고 계산기에 <입력2>을 입력했음
|
10
|
+
만일 내가 <버튼>를 누르면
|
11
|
+
그러면 화면에 출력된 결과는 <결과>이다
|
12
12
|
|
13
13
|
예:
|
14
14
|
| 입력1 | 입력2 | 버튼 | 결과 |
|
@@ -5,7 +5,7 @@ Funcionalidade: Adição
|
|
5
5
|
Eu quero saber como somar dois números
|
6
6
|
|
7
7
|
Cenário: Adicionar dois números
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
Dado que eu digitei 50 na calculadora
|
9
|
+
E que eu digitei 70 na calculadora
|
10
|
+
Quando eu aperto o botão de soma
|
11
|
+
Então o resultado na calculadora deve ser 120
|
@@ -1,6 +1,10 @@
|
|
1
1
|
# See http://wiki.github.com/aslakhellesoy/cucumber/sinatra
|
2
2
|
# for more details about Sinatra with Cucumber
|
3
3
|
|
4
|
+
gem 'rack-test', '=0.3.0'
|
5
|
+
gem 'aslakhellesoy-webrat', '=0.4.4.1'
|
6
|
+
gem 'sinatra', '=0.9.4'
|
7
|
+
|
4
8
|
# Sinatra
|
5
9
|
app_file = File.join(File.dirname(__FILE__), *%w[.. .. app.rb])
|
6
10
|
require app_file
|
@@ -8,13 +12,15 @@ require app_file
|
|
8
12
|
Sinatra::Application.app_file = app_file
|
9
13
|
|
10
14
|
require 'spec/expectations'
|
11
|
-
|
15
|
+
require 'rack/test'
|
12
16
|
require 'webrat'
|
17
|
+
|
13
18
|
Webrat.configure do |config|
|
14
19
|
config.mode = :rack
|
15
20
|
end
|
16
21
|
|
17
22
|
class MyWorld
|
23
|
+
include Rack::Test::Methods
|
18
24
|
include Webrat::Methods
|
19
25
|
include Webrat::Matchers
|
20
26
|
|
@@ -64,3 +64,18 @@ end
|
|
64
64
|
Then /^I should get a no method error for 'backtrace_line'$/ do
|
65
65
|
pending
|
66
66
|
end
|
67
|
+
|
68
|
+
Then /the table should be different with table:/ do |expected|
|
69
|
+
expected.diff!(table(%{
|
70
|
+
| b | c | a | d |
|
71
|
+
| KASHA | AIIT | BOOYA | X |
|
72
|
+
| four | five | three | Y |
|
73
|
+
}), :coldiff => true)
|
74
|
+
end
|
75
|
+
|
76
|
+
Then /the table should be different with array:/ do |expected|
|
77
|
+
expected.diff!([
|
78
|
+
{'a' => 'BOOYA', 'b' => 'KASHA'},
|
79
|
+
{'a' => 'three', 'b' => 'four'},
|
80
|
+
])
|
81
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
@intentional_failure
|
2
|
+
Feature: Tables
|
3
|
+
Scenario: Extra row with table
|
4
|
+
Then the table should be different with table:
|
5
|
+
| a | b |
|
6
|
+
| one | two |
|
7
|
+
| three | four |
|
8
|
+
|
9
|
+
Scenario: Extra row and missing column with table
|
10
|
+
Then the table should be different with table:
|
11
|
+
| a | e | b |
|
12
|
+
| one | Q | two |
|
13
|
+
| three | R | four |
|
@@ -19,4 +19,8 @@ end
|
|
19
19
|
# http://github.com/aslakhellesoy/cucumber/tree/v0.1.15/examples/watir/features/step_definitons/search_steps.rb
|
20
20
|
#
|
21
21
|
# You may keep the page classes along your steps, or even better, put them in separate files, e.g.
|
22
|
-
# support/pages/google_search.rb
|
22
|
+
# support/pages/google_search.rb
|
23
|
+
#
|
24
|
+
# This technique is called "Page Objects", and you can read more about it here:
|
25
|
+
# http://github.com/marekj/watirloo/tree/master
|
26
|
+
# We're not using this technique here, since we want to illustrate the basics only.
|
@@ -136,10 +136,7 @@
|
|
136
136
|
features/background/failing_background.feature:5:in `Given failing without a table'</pre></li><li class="step skipped" id="features_background_failing_background_feature_6"><div><span class="keyword">And</span> <span class="step val">'<span class="param">10</span>' cukes</span></div></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">failing background</span></h3><ol><li class="step skipped" id="features_background_failing_background_feature_9"><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">another failing background</span></h3><ol><li class="step skipped" id="features_background_failing_background_feature_12"><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li></ol></div></div><div class="feature"><h2><span class="val">Feature: Failing background after previously successful background sample</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><li class="step passed" id="features_background_failing_background_after_success_feature_4"><div><span class="keyword">Given</span> <span class="step val">passing without a table</span></div></li><li class="step passed" id="features_background_failing_background_after_success_feature_5"><div><span class="keyword">And</span> <span class="step val">'<span class="param">10</span>' global cukes</span></div></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">passing background</span></h3><ol><li class="step passed" id="features_background_failing_background_after_success_feature_8"><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' global cukes</span></div></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">failing background</span></h3><ol><li class="step failed" id="features_background_failing_background_after_success_feature_5"><pre class="failed">FAIL (RuntimeError)
|
137
137
|
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
138
138
|
./features/step_definitions/sample_steps.rb:37:in `/^'(.+)' global cukes$/'
|
139
|
-
features/background/failing_background_after_success.feature:5:in `And '10' global cukes'</pre></li><li class="step skipped" id="features_background_failing_background_after_success_feature_11"><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' global cukes</span></div></li></ol></div></div><div class="feature"><h2><span class="val">Feature: Passing background with multiline args</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><li class="step passed" id="features_background_multiline_args_background_feature_4"><div><span class="keyword">Given</span> <span class="step val">table</span></div><table><tr id="row_5"><td class="val" id="row_5_0">a</td><td class="val" id="row_5_1">b</td></tr><tr id="row_6"><td class="val" id="row_6_0">c</td><td class="val" id="row_6_1">d</td></tr></table></li><li class="step passed" id="features_background_multiline_args_background_feature_7"><div><span class="keyword">And</span> <span class="step val">multiline string</span></div><pre class="val">
|
140
|
-
I sleep all night and I test all day</pre></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">passing background</span></h3><ol><li class="step passed" id="features_background_multiline_args_background_feature_14"><div><span class="keyword">Then</span> <span class="step val">the table should be</span></div><table><tr id="row_15"><td class="val" id="row_15_0">a</td><td class="val" id="row_15_1">b</td></tr><tr id="row_16"><td class="val" id="row_16_0">c</td><td class="val" id="row_16_1">d</td></tr></table></li><li class="step passed" id="features_background_multiline_args_background_feature_17"><div><span class="keyword">Then</span> <span class="step val">the multiline string should be</span></div><pre class="val"> I'm a cucumber and I'm okay.
|
141
|
-
I sleep all night and I test all day</pre></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">another passing background</span></h3><ol><li class="step passed" id="features_background_multiline_args_background_feature_24"><div><span class="keyword">Then</span> <span class="step val">the table should be</span></div><table><tr id="row_25"><td class="val" id="row_25_0">a</td><td class="val" id="row_25_1">b</td></tr><tr id="row_26"><td class="val" id="row_26_0">c</td><td class="val" id="row_26_1">d</td></tr></table></li><li class="step passed" id="features_background_multiline_args_background_feature_27"><div><span class="keyword">Then</span> <span class="step val">the multiline string should be</span></div><pre class="val"> I'm a cucumber and I'm okay.
|
142
|
-
I sleep all night and I test all day</pre></li></ol></div></div><div class="feature"><h2><span class="val">Feature: Passing background sample</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><li class="step passed" id="features_background_passing_background_feature_4"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">10</span>' cukes</span></div></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">passing background</span></h3><ol><li class="step passed" id="features_background_passing_background_feature_7"><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">another passing background</span></h3><ol><li class="step passed" id="features_background_passing_background_feature_10"><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li></ol></div></div><div class="feature"><h2><span class="val">Feature: Pending background sample</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><li class="step undefined" id="features_background_pending_background_feature_4"><div><span class="keyword">Given</span> <span class="step val">pending</span></div></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">pending background</span></h3><ol><li class="step skipped" id="features_background_pending_background_feature_7"><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">another pending background</span></h3><ol><li class="step skipped" id="features_background_pending_background_feature_10"><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li></ol></div></div><div class="feature"><h2><span class="val">Feature: Failing background with scenario outlines sample</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><li class="step failed" id="features_background_scenario_outline_failing_background_feature_4"><div><span class="keyword">Given</span> <span class="step val">failing without a table</span></div><pre class="failed">FAIL (RuntimeError)
|
139
|
+
features/background/failing_background_after_success.feature:5:in `And '10' global cukes'</pre></li><li class="step skipped" id="features_background_failing_background_after_success_feature_11"><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' global cukes</span></div></li></ol></div></div><div class="feature"><h2><span class="val">Feature: Passing background with multiline args</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><li class="step passed" id="features_background_multiline_args_background_feature_4"><div><span class="keyword">Given</span> <span class="step val">table</span></div><table><tr id="row_5"><td class="val" id="row_5_0">a</td><td class="val" id="row_5_1">b</td></tr><tr id="row_6"><td class="val" id="row_6_0">c</td><td class="val" id="row_6_1">d</td></tr></table></li><li class="step passed" id="features_background_multiline_args_background_feature_7"><div><span class="keyword">And</span> <span class="step val">multiline string</span></div><pre class="val"> I'm a cucumber and I'm okay. 
 I sleep all night and I test all day</pre></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">passing background</span></h3><ol><li class="step passed" id="features_background_multiline_args_background_feature_14"><div><span class="keyword">Then</span> <span class="step val">the table should be</span></div><table><tr id="row_15"><td class="val" id="row_15_0">a</td><td class="val" id="row_15_1">b</td></tr><tr id="row_16"><td class="val" id="row_16_0">c</td><td class="val" id="row_16_1">d</td></tr></table></li><li class="step passed" id="features_background_multiline_args_background_feature_17"><div><span class="keyword">Then</span> <span class="step val">the multiline string should be</span></div><pre class="val"> I'm a cucumber and I'm okay. 
 I sleep all night and I test all day</pre></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">another passing background</span></h3><ol><li class="step passed" id="features_background_multiline_args_background_feature_24"><div><span class="keyword">Then</span> <span class="step val">the table should be</span></div><table><tr id="row_25"><td class="val" id="row_25_0">a</td><td class="val" id="row_25_1">b</td></tr><tr id="row_26"><td class="val" id="row_26_0">c</td><td class="val" id="row_26_1">d</td></tr></table></li><li class="step passed" id="features_background_multiline_args_background_feature_27"><div><span class="keyword">Then</span> <span class="step val">the multiline string should be</span></div><pre class="val"> I'm a cucumber and I'm okay. 
 I sleep all night and I test all day</pre></li></ol></div></div><div class="feature"><h2><span class="val">Feature: Passing background sample</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><li class="step passed" id="features_background_passing_background_feature_4"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">10</span>' cukes</span></div></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">passing background</span></h3><ol><li class="step passed" id="features_background_passing_background_feature_7"><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">another passing background</span></h3><ol><li class="step passed" id="features_background_passing_background_feature_10"><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li></ol></div></div><div class="feature"><h2><span class="val">Feature: Pending background sample</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><li class="step undefined" id="features_background_pending_background_feature_4"><div><span class="keyword">Given</span> <span class="step val">pending</span></div></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">pending background</span></h3><ol><li class="step skipped" id="features_background_pending_background_feature_7"><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">another pending background</span></h3><ol><li class="step skipped" id="features_background_pending_background_feature_10"><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li></ol></div></div><div class="feature"><h2><span class="val">Feature: Failing background with scenario outlines sample</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><li class="step failed" id="features_background_scenario_outline_failing_background_feature_4"><div><span class="keyword">Given</span> <span class="step val">failing without a table</span></div><pre class="failed">FAIL (RuntimeError)
|
143
140
|
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
144
141
|
./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
|
145
142
|
features/background/scenario_outline_failing_background.feature:4:in `Given failing without a table'</pre></li></ol></div><div class="scenario outline"><h3><span class="keyword">Scenario Outline:</span> <span class="val">failing background</span></h3><ol><li class="step skipped" id="features_background_scenario_outline_failing_background_feature_7"><div><span class="keyword">Then</span> <span class="step val">I should have '<count>' cukes</span></div></li></ol><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val"></span></h4><table><tr id="row_9"><th class="val skipped_param" id="row_9_0">count</th></tr><tr id="row_10"><td class="val skipped" id="row_10_0">10</td></tr><tr><td class="failed" colspan="1"><pre>FAIL (RuntimeError)
|
@@ -151,7 +148,8 @@ features/call_undefined_step_from_step_def.feature:4:in `Given a step definition
|
|
151
148
|
./features/step_definitions/sample_steps.rb:20:in `/^a step definition that calls an undefined step$/'
|
152
149
|
features/call_undefined_step_from_step_def.feature:7:in `Given call step "a step definition that calls an undefined step"'</pre></li></ol></div></div><div class="feature"><h2><span class="val">Feature: Failing expectation</span></h2><p class="narrative"></p><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">Failing expectation</span></h3><ol><li class="step failed" id="features_failing_expectation_feature_4"><div><span class="keyword">Given</span> <span class="step val">failing expectation</span></div><pre class="failed">expected: "that",
|
153
150
|
got: "this" (using ==)
|
154
|
-
|
151
|
+
|
152
|
+
Diff:
|
155
153
|
@@ -1,2 +1,2 @@
|
156
154
|
-that
|
157
155
|
+this
|
@@ -168,7 +166,7 @@ which goes on and on and on for three lines
|
|
168
166
|
yawn</span></h4><table><tr id="row_26"><th class="val skipped_param" id="row_26_0">state</th></tr><tr id="row_27"><td class="val passed" id="row_27_0">passing</td></tr></table></div></div></div><div class="feature"><h2><span class="val">Feature: Outline Sample</span></h2><p class="narrative"></p><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">I have no steps</span></h3><ol></ol></div><div class="scenario outline"><h3><span class="keyword">Scenario Outline:</span> <span class="val">Test state</span></h3><ol><li class="step skipped" id="features_outline_sample_feature_6"><div><span class="keyword">Given</span> <span class="step val"><state> without a table</span></div></li><li class="step skipped" id="features_outline_sample_feature_7"><div><span class="keyword">Given</span> <span class="step val"><other_state> without a table</span></div></li></ol><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val">Rainbow colours</span></h4><table><tr id="row_9"><th class="val skipped_param" id="row_9_0">state</th><th class="val skipped_param" id="row_9_1">other_state</th></tr><tr id="row_10"><td class="val undefined" id="row_10_0">missing</td><td class="val skipped" id="row_10_1">passing</td></tr><tr id="row_11"><td class="val passed" id="row_11_0">passing</td><td class="val passed" id="row_11_1">passing</td></tr><tr id="row_12"><td class="val failed" id="row_12_0">failing</td><td class="val skipped" id="row_12_1">passing</td></tr><tr><td class="failed" colspan="2"><pre>FAIL (RuntimeError)
|
169
167
|
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
170
168
|
./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
|
171
|
-
features/outline_sample.feature:6:in `Given <state> without a table'</pre></td></tr></table></div><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val">Only passing</span></h4><table><tr id="row_14"><th class="val skipped_param" id="row_14_0">state</th><th class="val skipped_param" id="row_14_1">other_state</th></tr><tr id="row_15"><td class="val passed" id="row_15_0">passing</td><td class="val passed" id="row_15_1">passing</td></tr></table></div></div></div><div class="feature"><pre class="comment"># Feature comment<br/></pre><span class="tag">@one</span><h2><span class="val">Feature: Sample</span></h2><p class="narrative"></p><div class="scenario"><span class="tag">@two</span
|
169
|
+
features/outline_sample.feature:6:in `Given <state> without a table'</pre></td></tr></table></div><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val">Only passing</span></h4><table><tr id="row_14"><th class="val skipped_param" id="row_14_0">state</th><th class="val skipped_param" id="row_14_1">other_state</th></tr><tr id="row_15"><td class="val passed" id="row_15_0">passing</td><td class="val passed" id="row_15_1">passing</td></tr></table></div></div></div><div class="feature"><pre class="comment"># Feature comment<br/></pre><span class="tag">@one</span><h2><span class="val">Feature: Sample</span></h2><p class="narrative"></p><div class="scenario"><span class="tag">@two</span> <span class="tag">@three</span><h3><span class="keyword">Scenario:</span> <span class="val">Missing</span></h3><ol><li class="step undefined" id="features_sample_feature_7"><div><span class="keyword">Given</span> <span class="step val">missing</span></div></li></ol></div><div class="scenario"><pre class="comment"># Scenario comment<br/></pre><span class="tag">@three</span><h3><span class="keyword">Scenario:</span> <span class="val">Passing</span></h3><ol><li class="step passed" id="features_sample_feature_12"><div><span class="keyword">Given</span> <span class="step val">passing</span></div><table><tr id="row_13"><td class="val" id="row_13_0">a</td><td class="val" id="row_13_1">b</td></tr><tr id="row_14"><td class="val" id="row_14_0">c</td><td class="val" id="row_14_1">d</td></tr></table></li></ol></div><div class="scenario"><span class="tag">@four</span><h3><span class="keyword">Scenario:</span> <span class="val">Failing</span></h3><ol><li class="step failed" id="features_sample_feature_18"><div><span class="keyword">Given</span> <span class="step val">failing</span></div><pre class="val">hello</pre><pre class="failed">FAIL (RuntimeError)
|
172
170
|
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
173
171
|
./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
|
174
172
|
features/sample.feature:18:in `Given failing'</pre></li></ol></div></div><div class="feature"><h2><span class="val">Feature: search examples</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val">Hantu Pisang background match</span></h3><ol><li class="step passed" id="features_search_sample_feature_4"><div><span class="keyword">Given</span> <span class="step val">passing without a table</span></div></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">should match Hantu Pisang</span></h3><ol><li class="step passed" id="features_search_sample_feature_7"><div><span class="keyword">Given</span> <span class="step val">passing without a table</span></div></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">Ignore me</span></h3><ol><li class="step failed" id="features_search_sample_feature_10"><div><span class="keyword">Given</span> <span class="step val">failing without a table</span></div><pre class="failed">FAIL (RuntimeError)
|
@@ -182,4 +180,4 @@ features/search_sample.feature:13:in `Given <state> without a table'</pre></td><
|
|
182
180
|
./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
|
183
181
|
features/search_sample.feature:25:in `Given <state> without a table'</pre></td></tr></table></div></div></div><div class="feature"><span class="tag">@lots</span><h2><span class="val">Feature: Tons of cukes</span></h2><p class="narrative"></p><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">Lots and lots</span></h3><ol><li class="step passed" id="features_tons_of_cukes_feature_4"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step failed" id="features_tons_of_cukes_feature_5"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div><pre class="failed">We already have 2 cukes! (RuntimeError)
|
184
182
|
./features/step_definitions/sample_steps.rb:28:in `/^'(.+)' cukes$/'
|
185
|
-
features/tons_of_cukes.feature:5:in `Given '2' cukes'</pre></li><li class="step skipped" id="features_tons_of_cukes_feature_6"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_7"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_8"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_9"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_10"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_11"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_12"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_13"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_14"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_15"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_16"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_17"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_18"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_19"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_20"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_21"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_22"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_23"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_24"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_25"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_26"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_27"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_28"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_29"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_30"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_31"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_32"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_33"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_34"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_35"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_36"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_37"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_38"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_39"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_40"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_41"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_42"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_43"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_44"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_45"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_46"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_47"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_48"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_49"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_50"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_51"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_52"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li></ol></div></div><div class="feature"><h2><span class="val">Feature: undefined multiline args</span></h2><p class="narrative"></p><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">pystring</span></h3><ol><li class="step undefined" id="features_undefined_multiline_args_feature_4"><div><span class="keyword">Given</span> <span class="step val">a pystring</span></div><pre class="val">
|
183
|
+
features/tons_of_cukes.feature:5:in `Given '2' cukes'</pre></li><li class="step skipped" id="features_tons_of_cukes_feature_6"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_7"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_8"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_9"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_10"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_11"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_12"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_13"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_14"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_15"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_16"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_17"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_18"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_19"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_20"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_21"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_22"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_23"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_24"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_25"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_26"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_27"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_28"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_29"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_30"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_31"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_32"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_33"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_34"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_35"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_36"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_37"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_38"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_39"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_40"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_41"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_42"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_43"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_44"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_45"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_46"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_47"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_48"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_49"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_50"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_51"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li><li class="step skipped" id="features_tons_of_cukes_feature_52"><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li></ol></div></div><div class="feature"><h2><span class="val">Feature: undefined multiline args</span></h2><p class="narrative"></p><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">pystring</span></h3><ol><li class="step undefined" id="features_undefined_multiline_args_feature_4"><div><span class="keyword">Given</span> <span class="step val">a pystring</span></div><pre class="val"> example</pre></li></ol></div><div class="scenario"><h3><span class="keyword">Scenario:</span> <span class="val">table</span></h3><ol><li class="step undefined" id="features_undefined_multiline_args_feature_10"><div><span class="keyword">Given</span> <span class="step val">a table</span></div><table><tr id="row_11"><td class="val" id="row_11_0">table</td></tr><tr id="row_12"><td class="val" id="row_12_0">example</td></tr></table></li></ol></div></div><div class="duration">0m30.005s</div></div></body></html>
|