square-cucumber 0.3.12.2 → 0.3.93.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +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>
|