cucumber 0.3.1 → 0.3.2

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.
Files changed (38) hide show
  1. data/History.txt +16 -0
  2. data/Manifest.txt +6 -0
  3. data/examples/i18n/he/Rakefile +6 -0
  4. data/examples/i18n/he/features/addition.feature +16 -0
  5. data/examples/i18n/he/features/division.feature +9 -0
  6. data/examples/i18n/he/features/step_definitons/calculator_steps.rb +24 -0
  7. data/examples/i18n/he/lib/calculator.rb +14 -0
  8. data/examples/self_test/features/search_sample.feature +10 -0
  9. data/examples/watir/features/search.feature +4 -1
  10. data/examples/watir/features/step_definitons/search_steps.rb +2 -4
  11. data/features/background.feature +30 -35
  12. data/features/cucumber_cli.feature +78 -68
  13. data/features/cucumber_cli_diff_disabled.feature +4 -4
  14. data/features/cucumber_cli_outlines.feature +43 -53
  15. data/features/multiline_names.feature +10 -10
  16. data/features/rake_task.feature +104 -86
  17. data/features/report_called_undefined_steps.feature +2 -2
  18. data/features/step_definitions/cucumber_steps.rb +8 -0
  19. data/features/usage.feature +1 -0
  20. data/lib/cucumber/ast/outline_table.rb +5 -0
  21. data/lib/cucumber/ast/scenario.rb +5 -0
  22. data/lib/cucumber/ast/step_collection.rb +7 -2
  23. data/lib/cucumber/ast/table.rb +1 -1
  24. data/lib/cucumber/formatter/console.rb +15 -9
  25. data/lib/cucumber/formatter/pretty.rb +3 -3
  26. data/lib/cucumber/formatter/progress.rb +8 -9
  27. data/lib/cucumber/languages.yml +16 -1
  28. data/lib/cucumber/parser/feature.rb +9 -2
  29. data/lib/cucumber/parser/feature.tt +13 -5
  30. data/lib/cucumber/parser/treetop_ext.rb +9 -0
  31. data/lib/cucumber/rails/world.rb +7 -1
  32. data/lib/cucumber/rake/task.rb +2 -0
  33. data/lib/cucumber/step_mother.rb +6 -1
  34. data/lib/cucumber/version.rb +1 -1
  35. data/spec/cucumber/ast/table_spec.rb +1 -1
  36. data/spec/cucumber/formatter/progress_spec.rb +35 -0
  37. data/spec/cucumber/parser/feature_parser_spec.rb +12 -0
  38. metadata +8 -2
@@ -1,3 +1,19 @@
1
+ == 0.3.2 2009-05-05
2
+
3
+ This release has some minor bug fixes and new features.
4
+ Nothing major, but we need a release for RailsConf'09 in Las Vegas!
5
+
6
+ === Bugfixes
7
+ * rake tasks with profiles not respecting --require flags (#311 Ben Mabey)
8
+ * Step table with blank cell fails (#308 JohnnyT)
9
+ * Fixed error where unused table cells in Examples where raising exceptions due to having no status (#302 Joseph Wilk)
10
+
11
+ === New features
12
+ * Support for Hebrew (Ido Kanner)
13
+ * Summary should report scenarios (#32 Aslak Hellesøy)
14
+ * Examples and the associated tables are indented one level deeper than Scenario Outline. (Aslak Hellesøy)
15
+ * Added support for Examples selection when using --name. (#295 Joseph Wilk)
16
+
1
17
  == 0.3.1 2009-04-26
2
18
 
3
19
  This release has several minor bug fixes and new features. With the addition of Latvian and Hungarian Cucumber
@@ -67,6 +67,11 @@ examples/i18n/fr/Rakefile
67
67
  examples/i18n/fr/features/addition.feature
68
68
  examples/i18n/fr/features/step_definitions/calculatrice_steps.rb
69
69
  examples/i18n/fr/lib/calculatrice.rb
70
+ examples/i18n/he/Rakefile
71
+ examples/i18n/he/features/addition.feature
72
+ examples/i18n/he/features/division.feature
73
+ examples/i18n/he/features/step_definitons/calculator_steps.rb
74
+ examples/i18n/he/lib/calculator.rb
70
75
  examples/i18n/hu/Rakefile
71
76
  examples/i18n/hu/features/addition.feature
72
77
  examples/i18n/hu/features/division.feature
@@ -341,6 +346,7 @@ spec/cucumber/formatter/html/cucumber.js
341
346
  spec/cucumber/formatter/html/index.html
342
347
  spec/cucumber/formatter/html/jquery-1.3.min.js
343
348
  spec/cucumber/formatter/html/jquery.uitableedit.js
349
+ spec/cucumber/formatter/progress_spec.rb
344
350
  spec/cucumber/parser/feature_parser_spec.rb
345
351
  spec/cucumber/parser/table_parser_spec.rb
346
352
  spec/cucumber/rails/stubs/mini_rails.rb
@@ -0,0 +1,6 @@
1
+ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
+ require 'cucumber/rake/task'
3
+
4
+ Cucumber::Rake::Task.new do |t|
5
+ t.cucumber_opts = "--language he"
6
+ end
@@ -0,0 +1,16 @@
1
+ תכונה: חיבור
2
+ כדי למנוע טעויות טפשיות
3
+ בתור בור מתמטי
4
+ אני רוצה שיגידו לי את הסכום של שני מספרים
5
+
6
+ תבנית תרחיש: חבר שני מספרים
7
+ בהינתן שהזנתי <קלט_1> למחשבון
8
+ וגם שהזנתי <קלט_2> למחשבון
9
+ כאשר אני לוחץ על <כפתור>
10
+ אז התוצאה על המסך צריכה להיות <פלט>
11
+
12
+ דוגמאות:
13
+ | קלט_1 | קלט_2 | כפתור | פלט |
14
+ | 20 | 30 | חבר | 50 |
15
+ | 2 | 5 | חבר | 7 |
16
+ | 0 | 40 | חבר | 40 |
@@ -0,0 +1,9 @@
1
+ תכונה: חילוק
2
+ כדי למנוע טעויות טפשיות
3
+ לקופאים חייבת להיות יכולת לחשב שבר
4
+
5
+ תרחיש: מספרים רגילים
6
+ בהינתן שהזנתי 3 למחשבון
7
+ וגם שהזנתי 2 למחשבון
8
+ כאשר אני לוחץ על חלק
9
+ אז התוצאה על המסך צריכה להיות 1.5
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+ require 'spec/expectations'
3
+ $:.unshift(File.dirname(__FILE__) + '/../../lib') # This line is not needed in your own project
4
+ require 'cucumber/formatter/unicode'
5
+ require 'calculator'
6
+
7
+ Before do
8
+ @calc = Calculator.new
9
+ end
10
+
11
+ After do
12
+ end
13
+
14
+ Given /שהזנתי (\d+) למחשבון/ do |n|
15
+ @calc.push n.to_i
16
+ end
17
+
18
+ When /אני לוחץ על (\w+)/ do |op|
19
+ @result = @calc.send op
20
+ end
21
+
22
+ Then /התוצאה על המסך צריכה להיות (.*)/ do |result|
23
+ @result.should == result.to_f
24
+ end
@@ -0,0 +1,14 @@
1
+ class Calculator
2
+ def push(n)
3
+ @args ||= []
4
+ @args << n
5
+ end
6
+
7
+ def חבר
8
+ @args.inject(0){|n,sum| sum+=n}
9
+ end
10
+
11
+ def חלק
12
+ @args[0].to_f / @args[1].to_f
13
+ end
14
+ end
@@ -20,3 +20,13 @@ Feature: search examples
20
20
  Examples:
21
21
  |state|
22
22
  |passing|
23
+
24
+ Scenario Outline: no match in name but in examples
25
+ Given <state> without a table
26
+ Examples: Hantu Pisang
27
+ |state|
28
+ |passing|
29
+
30
+ Examples: Ignore me
31
+ |state|
32
+ |failing|
@@ -6,4 +6,7 @@ Feature: Search
6
6
  Scenario: Find what I'm looking for
7
7
  Given I am on the Google search page
8
8
  When I search for "cucumber github"
9
- Then I should see a link to "Ruby on Rails — cucumber — GitHub":http://github.com/aslakhellesoy/cucumber/wikis/ruby-on-rails
9
+ Then I should see
10
+ """
11
+ BDD that talks to domain experts first and code second
12
+ """
@@ -10,10 +10,8 @@ When /I search for "(.*)"/ do |query|
10
10
  @browser.button(:name, 'btnG').click
11
11
  end
12
12
 
13
- Then /I should see a link to "(.*)":(.*)/ do |text, url|
14
- link = @browser.link(:url, url)
15
- link.should_not == nil
16
- link.text.should == text
13
+ Then /I should see/ do |text|
14
+ @browser.text.should =~ /#{text}/m
17
15
  end
18
16
 
19
17
  # To avoid step definitions that are tightly coupled to your user interface,
@@ -15,8 +15,8 @@ Feature: backgrounds
15
15
  Scenario: another passing background
16
16
  Then I should have '10' cukes
17
17
 
18
- 1 scenario
19
- 2 passed steps
18
+ 1 scenario (1 passed)
19
+ 2 steps (2 passed)
20
20
 
21
21
  """
22
22
 
@@ -35,8 +35,8 @@ Feature: backgrounds
35
35
  Scenario: another passing background
36
36
  Then I should have '10' cukes
37
37
 
38
- 2 scenarios
39
- 4 passed steps
38
+ 2 scenarios (2 passed)
39
+ 4 steps (4 passed)
40
40
 
41
41
  """
42
42
 
@@ -52,19 +52,19 @@ Feature: backgrounds
52
52
  Scenario Outline: passing background
53
53
  Then I should have '<count>' cukes
54
54
 
55
- Examples:
56
- | count |
57
- | 10 |
55
+ Examples:
56
+ | count |
57
+ | 10 |
58
58
 
59
59
  Scenario Outline: another passing background
60
60
  Then I should have '<count>' cukes
61
61
 
62
- Examples:
63
- | count |
64
- | 10 |
62
+ Examples:
63
+ | count |
64
+ | 10 |
65
65
 
66
- 2 scenarios
67
- 4 passed steps
66
+ 2 scenarios (2 passed)
67
+ 4 steps (4 passed)
68
68
 
69
69
  """
70
70
 
@@ -89,9 +89,8 @@ Feature: backgrounds
89
89
  Scenario: another failing background
90
90
  Then I should have '10' cukes
91
91
 
92
- 2 scenarios
93
- 1 failed step
94
- 5 skipped steps
92
+ 2 scenarios (1 failed, 1 skipped)
93
+ 6 steps (1 failed, 5 skipped)
95
94
 
96
95
  """
97
96
  And "examples/self_test/tmp/after.txt" should exist
@@ -112,20 +111,19 @@ Feature: backgrounds
112
111
  Scenario Outline: failing background
113
112
  Then I should have '<count>' cukes
114
113
 
115
- Examples:
116
- | count |
117
- | 10 |
114
+ Examples:
115
+ | count |
116
+ | 10 |
118
117
 
119
118
  Scenario Outline: another failing background
120
119
  Then I should have '<count>' cukes
121
120
 
122
- Examples:
123
- | count |
124
- | 10 |
121
+ Examples:
122
+ | count |
123
+ | 10 |
125
124
 
126
- 2 scenarios
127
- 1 failed step
128
- 3 skipped steps
125
+ 2 scenarios (1 failed, 1 skipped)
126
+ 4 steps (1 failed, 3 skipped)
129
127
 
130
128
  """
131
129
 
@@ -144,9 +142,8 @@ Feature: backgrounds
144
142
  Scenario: another pending background
145
143
  Then I should have '10' cukes
146
144
 
147
- 2 scenarios
148
- 2 skipped steps
149
- 2 undefined steps
145
+ 2 scenarios (2 undefined)
146
+ 4 steps (2 skipped, 2 undefined)
150
147
 
151
148
  """
152
149
 
@@ -171,10 +168,8 @@ Feature: backgrounds
171
168
  features/background/failing_background_after_success.feature:5:in `And '10' global cukes'
172
169
  Then I should have '10' global cukes
173
170
 
174
- 2 scenarios
175
- 1 failed step
176
- 1 skipped step
177
- 4 passed steps
171
+ 2 scenarios (1 failed, 1 passed)
172
+ 6 steps (1 failed, 1 skipped, 4 passed)
178
173
 
179
174
  """
180
175
 
@@ -214,8 +209,8 @@ Feature: backgrounds
214
209
  I sleep all night and I test all day
215
210
  \"\"\"
216
211
 
217
- 2 scenarios
218
- 8 passed steps
212
+ 2 scenarios (2 passed)
213
+ 8 steps (8 passed)
219
214
 
220
215
  """
221
216
 
@@ -231,8 +226,8 @@ Feature: backgrounds
231
226
  Scenario: example
232
227
  Then I should have '10' cukes
233
228
 
234
- 1 scenario
235
- 2 passed steps
229
+ 1 scenario (1 passed)
230
+ 2 steps (2 passed)
236
231
 
237
232
  """
238
233
 
@@ -13,8 +13,8 @@ Feature: Cucumber command line
13
13
  Scenario: Missing
14
14
  Given missing
15
15
 
16
- 1 scenario
17
- 1 undefined step
16
+ 1 scenario (1 undefined)
17
+ 1 step (1 undefined)
18
18
 
19
19
  """
20
20
 
@@ -31,8 +31,8 @@ Feature: Cucumber command line
31
31
  Undefined step: "missing" (Cucumber::Undefined)
32
32
  features/sample.feature:6:in `Given missing'
33
33
 
34
- 1 scenario
35
- 1 undefined step
34
+ 1 scenario (1 undefined)
35
+ 1 step (1 undefined)
36
36
 
37
37
  """
38
38
 
@@ -49,8 +49,8 @@ Feature: Cucumber command line
49
49
  | a | b |
50
50
  | c | d |
51
51
 
52
- 1 scenario
53
- 1 passed step
52
+ 1 scenario (1 passed)
53
+ 1 step (1 passed)
54
54
 
55
55
  """
56
56
 
@@ -76,9 +76,8 @@ Feature: Cucumber command line
76
76
  ./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
77
77
  features/sample.feature:16:in `Given failing'
78
78
 
79
- 2 scenarios
80
- 1 failed step
81
- 1 undefined step
79
+ 2 scenarios (1 failed, 1 undefined)
80
+ 2 steps (1 failed, 1 undefined)
82
81
 
83
82
  """
84
83
 
@@ -93,8 +92,8 @@ Feature: Cucumber command line
93
92
  Scenario: Missing
94
93
  Given missing
95
94
 
96
- 1 scenario
97
- 1 passed step
95
+ 1 scenario (1 passed)
96
+ 1 step (1 passed)
98
97
 
99
98
  """
100
99
 
@@ -111,8 +110,8 @@ Feature: Cucumber command line
111
110
  | a | b |
112
111
  | c | d |
113
112
 
114
- 1 scenario
115
- 1 passed step
113
+ 1 scenario (1 passed)
114
+ 1 step (1 passed)
116
115
 
117
116
  """
118
117
 
@@ -129,10 +128,8 @@ Feature: Cucumber command line
129
128
  ./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
130
129
  features/sample.feature:16:in `Given failing'
131
130
 
132
- 3 scenarios
133
- 1 failed step
134
- 1 undefined step
135
- 1 passed step
131
+ 3 scenarios (1 failed, 1 undefined, 1 passed)
132
+ 3 steps (1 failed, 1 undefined, 1 passed)
136
133
 
137
134
  """
138
135
 
@@ -160,8 +157,8 @@ Feature: Cucumber command line
160
157
  Når jeg summerer
161
158
  Så skal resultatet være 13
162
159
 
163
- 2 scenarios
164
- 9 passed steps
160
+ 2 scenarios (2 passed)
161
+ 9 steps (9 passed)
165
162
 
166
163
  """
167
164
 
@@ -208,18 +205,18 @@ Feature: Cucumber command line
208
205
  yawn
209
206
  Given <state> without a table
210
207
 
211
- Examples:
212
- | state |
213
- | passing |
208
+ Examples:
209
+ | state |
210
+ | passing |
214
211
 
215
212
  Scenario Outline: name
216
213
  Given <state> without a table
217
214
 
218
- Examples: I'm a multiline name
219
- which goes on and on and on for three lines
220
- yawn
221
- | state |
222
- | passing |
215
+ Examples: I'm a multiline name
216
+ which goes on and on and on for three lines
217
+ yawn
218
+ | state |
219
+ | passing |
223
220
 
224
221
  Feature: Outline Sample
225
222
 
@@ -229,15 +226,15 @@ Feature: Cucumber command line
229
226
  Given <state> without a table
230
227
  Given <other_state> without a table
231
228
 
232
- Examples: Rainbow colours
233
- | state | other_state |
234
- | missing | passing |
235
- | passing | passing |
236
- | failing | passing |
229
+ Examples: Rainbow colours
230
+ | state | other_state |
231
+ | missing | passing |
232
+ | passing | passing |
233
+ | failing | passing |
237
234
 
238
- Examples: Only passing
239
- | state | other_state |
240
- | passing | passing |
235
+ Examples: Only passing
236
+ | state | other_state |
237
+ | passing | passing |
241
238
 
242
239
  @one
243
240
  Feature: Sample
@@ -273,16 +270,27 @@ Feature: Cucumber command line
273
270
  Scenario Outline: Ignore me
274
271
  Given <state> without a table
275
272
 
276
- Examples:
277
- | state |
278
- | failing |
273
+ Examples:
274
+ | state |
275
+ | failing |
279
276
 
280
277
  Scenario Outline: Hantu Pisang match
281
278
  Given <state> without a table
282
279
 
283
- Examples:
284
- | state |
285
- | passing |
280
+ Examples:
281
+ | state |
282
+ | passing |
283
+
284
+ Scenario Outline: no match in name but in examples
285
+ Given <state> without a table
286
+
287
+ Examples: Hantu Pisang
288
+ | state |
289
+ | passing |
290
+
291
+ Examples: Ignore me
292
+ | state |
293
+ | failing |
286
294
 
287
295
  Feature: undefined multiline args
288
296
 
@@ -296,10 +304,9 @@ Feature: Cucumber command line
296
304
  Given a table
297
305
  | table |
298
306
  | example |
299
-
300
- 21 scenarios
301
- 26 skipped steps
302
- 9 undefined steps
307
+
308
+ 23 scenarios (17 skipped, 5 undefined, 1 passed)
309
+ 39 steps (30 skipped, 9 undefined)
303
310
 
304
311
  """
305
312
 
@@ -309,11 +316,11 @@ Feature: Cucumber command line
309
316
  """
310
317
  UUUUU
311
318
 
312
- 1 scenario
313
- 5 undefined steps
319
+ 1 scenario (1 undefined)
320
+ 5 steps (5 undefined)
314
321
 
315
322
  """
316
- And "examples/self_test/tmp/pretty.txt" should match
323
+ And "examples/self_test/tmp/pretty.txt" should contain
317
324
  """
318
325
  Feature: Lots of undefined
319
326
 
@@ -323,9 +330,9 @@ Feature: Cucumber command line
323
330
  And it's 40 degrees in Norway
324
331
  When I stop procrastinating
325
332
  And there is world peace
326
-
327
- 1 scenario
328
- 5 undefined steps
333
+
334
+ 1 scenario (1 undefined)
335
+ 5 steps (5 undefined)
329
336
 
330
337
  """
331
338
 
@@ -344,12 +351,19 @@ Feature: Cucumber command line
344
351
  Scenario Outline: Hantu Pisang match
345
352
  Given <state> without a table
346
353
 
347
- Examples:
348
- | state |
349
- | passing |
354
+ Examples:
355
+ | state |
356
+ | passing |
357
+
358
+ Scenario Outline: no match in name but in examples
359
+ Given <state> without a table
360
+
361
+ Examples: Hantu Pisang
362
+ | state |
363
+ | passing |
350
364
 
351
- 2 scenarios
352
- 4 passed steps
365
+ 3 scenarios (3 passed)
366
+ 6 steps (6 passed)
353
367
 
354
368
  """
355
369
 
@@ -362,8 +376,8 @@ Feature: Cucumber command line
362
376
  Background: Hantu Pisang background match
363
377
  Given passing without a table
364
378
 
365
- 0 scenarios
366
- 1 passed step
379
+ 0 scenarios ()
380
+ 1 step (1 passed)
367
381
 
368
382
  """
369
383
 
@@ -385,9 +399,8 @@ Feature: Cucumber command line
385
399
  | a | b |
386
400
  | c | d |
387
401
 
388
- 2 scenarios
389
- 1 undefined step
390
- 1 passed step
402
+ 2 scenarios (1 undefined, 1 passed)
403
+ 2 steps (1 undefined, 1 passed)
391
404
 
392
405
  """
393
406
 
@@ -419,10 +432,8 @@ Feature: Cucumber command line
419
432
  ./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
420
433
  features/sample.feature:16:in `Given failing'
421
434
 
422
- 3 scenarios
423
- 1 failed step
424
- 1 undefined step
425
- 1 passed step
435
+ 3 scenarios (1 failed, 1 undefined, 1 passed)
436
+ 3 steps (1 failed, 1 undefined, 1 passed)
426
437
 
427
438
  """
428
439
 
@@ -443,9 +454,8 @@ Feature: Cucumber command line
443
454
  | a | b |
444
455
  | c | d |
445
456
 
446
- 2 scenarios
447
- 1 skipped step
448
- 1 undefined step
457
+ 2 scenarios (1 skipped, 1 undefined)
458
+ 2 steps (1 skipped, 1 undefined)
449
459
 
450
460
  """
451
461