cucumber 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/.rvmrc +1 -0
  2. data/.travis.yml +12 -2
  3. data/History.md +14 -0
  4. data/cucumber.gemspec +2 -2
  5. data/cucumber.yml +1 -1
  6. data/features/.cucumber/stepdefs.json +1159 -0
  7. data/features/issue_57.feature +35 -0
  8. data/legacy_features/wire_protocol.feature +1 -1
  9. data/lib/cucumber/ast/feature.rb +1 -1
  10. data/lib/cucumber/ast/table.rb +52 -31
  11. data/lib/cucumber/cli/configuration.rb +4 -0
  12. data/lib/cucumber/cli/main.rb +1 -0
  13. data/lib/cucumber/cli/options.rb +3 -0
  14. data/lib/cucumber/constantize.rb +1 -1
  15. data/lib/cucumber/formatter/gherkin_formatter_adapter.rb +1 -1
  16. data/lib/cucumber/formatter/html.rb +6 -1
  17. data/lib/cucumber/formatter/rerun.rb +30 -7
  18. data/lib/cucumber/js_support/js_language.rb +1 -1
  19. data/lib/cucumber/language_support/language_methods.rb +0 -4
  20. data/lib/cucumber/platform.rb +1 -1
  21. data/lib/cucumber/py_support/py_language.rb +0 -4
  22. data/lib/cucumber/rb_support/rb_language.rb +0 -14
  23. data/lib/cucumber/rb_support/regexp_argument_matcher.rb +3 -3
  24. data/lib/cucumber/runtime.rb +39 -2
  25. data/lib/cucumber/step_match.rb +3 -3
  26. data/lib/cucumber/wire_support/wire_protocol.rb +0 -1
  27. data/lib/cucumber/wire_support/wire_protocol/requests.rb +3 -1
  28. data/spec/cucumber/ast/table_spec.rb +13 -0
  29. data/spec/cucumber/cli/main_spec.rb +1 -1
  30. data/spec/cucumber/constantize_spec.rb +12 -0
  31. data/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +2 -2
  32. metadata +54 -68
  33. data/.gitignore +0 -27
  34. data/examples/i18n/de/.gitignore +0 -1
  35. data/examples/i18n/en/.gitignore +0 -1
  36. data/examples/i18n/eo/.gitignore +0 -1
  37. data/examples/i18n/fi/.gitignore +0 -1
  38. data/examples/i18n/hu/.gitignore +0 -1
  39. data/examples/i18n/id/.gitignore +0 -1
  40. data/examples/i18n/ja/.gitignore +0 -1
  41. data/examples/i18n/ko/.gitignore +0 -1
  42. data/examples/i18n/lt/.gitignore +0 -1
  43. data/examples/i18n/pl/.gitignore +0 -1
  44. data/examples/i18n/sk/.gitignore +0 -1
  45. data/examples/i18n/tr/.gitignore +0 -1
  46. data/examples/i18n/zh-TW/.gitignore +0 -1
  47. data/examples/python/lib/.gitignore +0 -1
  48. data/examples/ruby2python/lib/.gitignore +0 -1
  49. data/examples/watir/.gitignore +0 -2
  50. data/fixtures/self_test/.gitignore +0 -1
  51. data/lib/cucumber/step_argument.rb +0 -9
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm gemset use cucumber
@@ -1,3 +1,13 @@
1
- rvm:
1
+ rvm:
2
+ - 1.9.3
2
3
  - 1.9.2
3
- - 1.9.3
4
+ # whitelist
5
+ branches:
6
+ only:
7
+ - master
8
+
9
+ notifications:
10
+ email:
11
+ - cukes-devs@googlegroups.com
12
+ irc:
13
+ - "irc.freenode.org#cucumber"
data/History.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [v1.1.3](https://github.com/cucumber/cucumber/compare/v1.1.2...v1.1.3)
2
+
3
+ ### New Features
4
+
5
+ * Generate stepdef metadata with --dotcucumber. Useful for Cukepatch. (Aslak Hellesøy)
6
+ * Show class name of exceptions in the HTML formatter ([#159](https://github.com/cucumber/cucumber/pull/159) Jari Bakken)
7
+ * Deferred table header and column mappings ([#163](https://github.com/cucumber/cucumber/pull/163) Richard Lawrence)
8
+
9
+ ### Bugfixes
10
+
11
+ * Escape exceptions in HTML formatter ([#178](https://github.com/cucumber/cucumber/pull/178) leachdaniel)
12
+ * Retry when feature_element returns failed ([#172](https://github.com/cucumber/cucumber/pull/172) Charles Finkel)
13
+ * Rerun formatter output does not include failing scenario outline examples ([#57](https://github.com/cucumber/cucumber/issues/57) Jan Brauer)
14
+
1
15
  ## [v1.1.2](https://github.com/cucumber/cucumber/compare/v1.1.1...v1.1.2)
2
16
 
3
17
  ### Changed features
@@ -23,7 +23,7 @@ for important information about this release. Happy cuking!
23
23
 
24
24
  }
25
25
 
26
- s.add_runtime_dependency 'gherkin', '~> 2.6.2'
26
+ s.add_runtime_dependency 'gherkin', '~> 2.6.7'
27
27
  s.add_runtime_dependency 'term-ansicolor', '>= 1.0.6'
28
28
  s.add_runtime_dependency 'builder', '>= 2.1.2'
29
29
  s.add_runtime_dependency 'diff-lcs', '>= 1.1.2'
@@ -52,7 +52,7 @@ for important information about this release. Happy cuking!
52
52
  s.add_development_dependency 'capybara', '>= 1.1.1'
53
53
 
54
54
  s.rubygems_version = ">= 1.6.1"
55
- s.files = `git ls-files`.split("\n")
55
+ s.files = `git ls-files`.split("\n").reject {|path| path =~ /\.gitignore$/ }
56
56
  s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
57
57
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
58
58
  s.rdoc_options = ["--charset=UTF-8"]
@@ -10,7 +10,7 @@ rescue LoadError
10
10
  std_opts << ' --tags ~@rspec2'
11
11
  end
12
12
  %>
13
- default: <%= std_opts %>
13
+ default: <%= std_opts %> --dotcucumber features/.cucumber
14
14
  jruby: <%= std_opts %> --tags ~@spork --tags ~@wire
15
15
  jruby_win: <%= std_opts %> --tags ~@spork --tags ~@wire CUCUMBER_FORWARD_SLASH_PATHS=true
16
16
  windows_mri: <%= std_opts %> --tags ~@spork --tags ~@wire --tags ~@needs-many-fonts CUCUMBER_FORWARD_SLASH_PATHS=true
@@ -0,0 +1,1159 @@
1
+ [
2
+ {
3
+ "source": "^I'm using a clean gemset \"([^\"]*)\"$",
4
+ "flags": "",
5
+ "steps": [
6
+
7
+ ]
8
+ },
9
+ {
10
+ "source": "^a directory named \"([^\"]*)\"$",
11
+ "flags": "",
12
+ "steps": [
13
+
14
+ ]
15
+ },
16
+ {
17
+ "source": "^a file named \"([^\"]*)\" with:$",
18
+ "flags": "",
19
+ "steps": [
20
+ {
21
+ "name": "a file named \"features/doc_string.feature\" with:",
22
+ "args": [
23
+ {
24
+ "offset": 14,
25
+ "val": "features/doc_string.feature"
26
+ }
27
+ ]
28
+ },
29
+ {
30
+ "name": "a file named \"features/f.feature\" with:",
31
+ "args": [
32
+ {
33
+ "offset": 14,
34
+ "val": "features/f.feature"
35
+ }
36
+ ]
37
+ },
38
+ {
39
+ "name": "a file named \"features/only_background_and_hooks.feature\" with:",
40
+ "args": [
41
+ {
42
+ "offset": 14,
43
+ "val": "features/only_background_and_hooks.feature"
44
+ }
45
+ ]
46
+ },
47
+ {
48
+ "name": "a file named \"features/only_background_and_hooks_steps.rb\" with:",
49
+ "args": [
50
+ {
51
+ "offset": 14,
52
+ "val": "features/only_background_and_hooks_steps.rb"
53
+ }
54
+ ]
55
+ },
56
+ {
57
+ "name": "a file named \"features/step_definitions/doc_string_steps.rb\" with:",
58
+ "args": [
59
+ {
60
+ "offset": 14,
61
+ "val": "features/step_definitions/doc_string_steps.rb"
62
+ }
63
+ ]
64
+ },
65
+ {
66
+ "name": "a file named \"features/step_definitions/multiline_steps.rb\" with:",
67
+ "args": [
68
+ {
69
+ "offset": 14,
70
+ "val": "features/step_definitions/multiline_steps.rb"
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "name": "a file named \"features/step_definitions/steps.rb\" with:",
76
+ "args": [
77
+ {
78
+ "offset": 14,
79
+ "val": "features/step_definitions/steps.rb"
80
+ }
81
+ ]
82
+ },
83
+ {
84
+ "name": "a file named \"features/support/hooks.rb\" with:",
85
+ "args": [
86
+ {
87
+ "offset": 14,
88
+ "val": "features/support/hooks.rb"
89
+ }
90
+ ]
91
+ },
92
+ {
93
+ "name": "a file named \"features/support/ze/formator.rb\" with:",
94
+ "args": [
95
+ {
96
+ "offset": 14,
97
+ "val": "features/support/ze/formator.rb"
98
+ }
99
+ ]
100
+ }
101
+ ]
102
+ },
103
+ {
104
+ "source": "^a (\\d+) byte file named \"([^\"]*)\"$",
105
+ "flags": "",
106
+ "steps": [
107
+
108
+ ]
109
+ },
110
+ {
111
+ "source": "^an empty file named \"([^\"]*)\"$",
112
+ "flags": "",
113
+ "steps": [
114
+
115
+ ]
116
+ },
117
+ {
118
+ "source": "^I write to \"([^\"]*)\" with:$",
119
+ "flags": "",
120
+ "steps": [
121
+
122
+ ]
123
+ },
124
+ {
125
+ "source": "^I overwrite \"([^\"]*)\" with:$",
126
+ "flags": "",
127
+ "steps": [
128
+
129
+ ]
130
+ },
131
+ {
132
+ "source": "^I append to \"([^\"]*)\" with:$",
133
+ "flags": "",
134
+ "steps": [
135
+
136
+ ]
137
+ },
138
+ {
139
+ "source": "^I append to \"([^\"]*)\" with \"([^\"]*)\"$",
140
+ "flags": "",
141
+ "steps": [
142
+
143
+ ]
144
+ },
145
+ {
146
+ "source": "^I remove the file \"([^\"]*)\"$",
147
+ "flags": "",
148
+ "steps": [
149
+
150
+ ]
151
+ },
152
+ {
153
+ "source": "^I cd to \"([^\"]*)\"$",
154
+ "flags": "",
155
+ "steps": [
156
+
157
+ ]
158
+ },
159
+ {
160
+ "source": "^I run \"(.*)\"$",
161
+ "flags": "",
162
+ "steps": [
163
+
164
+ ]
165
+ },
166
+ {
167
+ "source": "^I run `([^`]*)`$",
168
+ "flags": "",
169
+ "steps": [
170
+ {
171
+ "name": "I run `cucumber -f stepdefs --dry-run`",
172
+ "args": [
173
+ {
174
+ "offset": 7,
175
+ "val": "cucumber -f stepdefs --dry-run"
176
+ }
177
+ ]
178
+ },
179
+ {
180
+ "name": "I run `cucumber -f usage --dry-run`",
181
+ "args": [
182
+ {
183
+ "offset": 7,
184
+ "val": "cucumber -f usage --dry-run"
185
+ }
186
+ ]
187
+ },
188
+ {
189
+ "name": "I run `cucumber -q -t @one -t @three features/tagulicious.feature`",
190
+ "args": [
191
+ {
192
+ "offset": 7,
193
+ "val": "cucumber -q -t @one -t @three features/tagulicious.feature"
194
+ }
195
+ ]
196
+ },
197
+ {
198
+ "name": "I run `cucumber -q -t @one,@three features/tagulicious.feature`",
199
+ "args": [
200
+ {
201
+ "offset": 7,
202
+ "val": "cucumber -q -t @one,@three features/tagulicious.feature"
203
+ }
204
+ ]
205
+ },
206
+ {
207
+ "name": "I run `cucumber -q features/background_tagged_before_on_outline.feature`",
208
+ "args": [
209
+ {
210
+ "offset": 7,
211
+ "val": "cucumber -q features/background_tagged_before_on_outline.feature"
212
+ }
213
+ ]
214
+ },
215
+ {
216
+ "name": "I run `cucumber -q features/failing_background.feature`",
217
+ "args": [
218
+ {
219
+ "offset": 7,
220
+ "val": "cucumber -q features/failing_background.feature"
221
+ }
222
+ ]
223
+ },
224
+ {
225
+ "name": "I run `cucumber -q features/failing_background_after_success.feature`",
226
+ "args": [
227
+ {
228
+ "offset": 7,
229
+ "val": "cucumber -q features/failing_background_after_success.feature"
230
+ }
231
+ ]
232
+ },
233
+ {
234
+ "name": "I run `cucumber -q features/multiline_args_background.feature`",
235
+ "args": [
236
+ {
237
+ "offset": 7,
238
+ "val": "cucumber -q features/multiline_args_background.feature"
239
+ }
240
+ ]
241
+ },
242
+ {
243
+ "name": "I run `cucumber -q features/passing_background.feature:9`",
244
+ "args": [
245
+ {
246
+ "offset": 7,
247
+ "val": "cucumber -q features/passing_background.feature:9"
248
+ }
249
+ ]
250
+ },
251
+ {
252
+ "name": "I run `cucumber -q features/passing_background.feature`",
253
+ "args": [
254
+ {
255
+ "offset": 7,
256
+ "val": "cucumber -q features/passing_background.feature"
257
+ }
258
+ ]
259
+ },
260
+ {
261
+ "name": "I run `cucumber -q features/pending_background.feature`",
262
+ "args": [
263
+ {
264
+ "offset": 7,
265
+ "val": "cucumber -q features/pending_background.feature"
266
+ }
267
+ ]
268
+ },
269
+ {
270
+ "name": "I run `cucumber -q features/scenario_outline_failing_background.feature`",
271
+ "args": [
272
+ {
273
+ "offset": 7,
274
+ "val": "cucumber -q features/scenario_outline_failing_background.feature"
275
+ }
276
+ ]
277
+ },
278
+ {
279
+ "name": "I run `cucumber -q features/scenario_outline_passing_background.feature`",
280
+ "args": [
281
+ {
282
+ "offset": 7,
283
+ "val": "cucumber -q features/scenario_outline_passing_background.feature"
284
+ }
285
+ ]
286
+ },
287
+ {
288
+ "name": "I run `cucumber -q features/tagulicious.feature`",
289
+ "args": [
290
+ {
291
+ "offset": 7,
292
+ "val": "cucumber -q features/tagulicious.feature"
293
+ }
294
+ ]
295
+ },
296
+ {
297
+ "name": "I run `cucumber features/f.feature:2`",
298
+ "args": [
299
+ {
300
+ "offset": 7,
301
+ "val": "cucumber features/f.feature:2"
302
+ }
303
+ ]
304
+ },
305
+ {
306
+ "name": "I run `cucumber features/f.feature:6`",
307
+ "args": [
308
+ {
309
+ "offset": 7,
310
+ "val": "cucumber features/f.feature:6"
311
+ }
312
+ ]
313
+ },
314
+ {
315
+ "name": "I run `cucumber features/only_background_and_hooks.feature`",
316
+ "args": [
317
+ {
318
+ "offset": 7,
319
+ "val": "cucumber features/only_background_and_hooks.feature"
320
+ }
321
+ ]
322
+ },
323
+ {
324
+ "name": "I run `cucumber`",
325
+ "args": [
326
+ {
327
+ "offset": 7,
328
+ "val": "cucumber"
329
+ }
330
+ ]
331
+ }
332
+ ]
333
+ },
334
+ {
335
+ "source": "^I successfully run \"(.*)\"$",
336
+ "flags": "",
337
+ "steps": [
338
+
339
+ ]
340
+ },
341
+ {
342
+ "source": "^I successfully run `([^`]*)`$",
343
+ "flags": "",
344
+ "steps": [
345
+
346
+ ]
347
+ },
348
+ {
349
+ "source": "^I run \"([^\"]*)\" interactively$",
350
+ "flags": "",
351
+ "steps": [
352
+
353
+ ]
354
+ },
355
+ {
356
+ "source": "^I run `([^`]*)` interactively$",
357
+ "flags": "",
358
+ "steps": [
359
+
360
+ ]
361
+ },
362
+ {
363
+ "source": "^I type \"([^\"]*)\"$",
364
+ "flags": "",
365
+ "steps": [
366
+
367
+ ]
368
+ },
369
+ {
370
+ "source": "^the output should contain \"([^\"]*)\"$",
371
+ "flags": "",
372
+ "steps": [
373
+ {
374
+ "name": "the output should contain \"WARNING\"",
375
+ "args": [
376
+ {
377
+ "offset": 27,
378
+ "val": "WARNING"
379
+ }
380
+ ]
381
+ }
382
+ ]
383
+ },
384
+ {
385
+ "source": "^the output from \"([^\"]*)\" should contain \"([^\"]*)\"$",
386
+ "flags": "",
387
+ "steps": [
388
+
389
+ ]
390
+ },
391
+ {
392
+ "source": "^the output from \"([^\"]*)\" should not contain \"([^\"]*)\"$",
393
+ "flags": "",
394
+ "steps": [
395
+
396
+ ]
397
+ },
398
+ {
399
+ "source": "^the output should not contain \"([^\"]*)\"$",
400
+ "flags": "",
401
+ "steps": [
402
+
403
+ ]
404
+ },
405
+ {
406
+ "source": "^the output should contain:$",
407
+ "flags": "",
408
+ "steps": [
409
+ {
410
+ "name": "the output should contain:",
411
+ "args": [
412
+
413
+ ]
414
+ }
415
+ ]
416
+ },
417
+ {
418
+ "source": "^the output should not contain:$",
419
+ "flags": "",
420
+ "steps": [
421
+
422
+ ]
423
+ },
424
+ {
425
+ "source": "^the output should contain exactly \"([^\"]*)\"$",
426
+ "flags": "",
427
+ "steps": [
428
+
429
+ ]
430
+ },
431
+ {
432
+ "source": "^the output should contain exactly:$",
433
+ "flags": "",
434
+ "steps": [
435
+
436
+ ]
437
+ },
438
+ {
439
+ "source": "^the output should match \\/([^\\/]*)\\/$",
440
+ "flags": "",
441
+ "steps": [
442
+
443
+ ]
444
+ },
445
+ {
446
+ "source": "^the output should match:$",
447
+ "flags": "",
448
+ "steps": [
449
+
450
+ ]
451
+ },
452
+ {
453
+ "source": "^the exit status should be (\\d+)$",
454
+ "flags": "",
455
+ "steps": [
456
+
457
+ ]
458
+ },
459
+ {
460
+ "source": "^the exit status should not be (\\d+)$",
461
+ "flags": "",
462
+ "steps": [
463
+
464
+ ]
465
+ },
466
+ {
467
+ "source": "^it should (pass|fail) with:$",
468
+ "flags": "",
469
+ "steps": [
470
+ {
471
+ "name": "it should fail with:",
472
+ "args": [
473
+ {
474
+ "offset": 10,
475
+ "val": "fail"
476
+ }
477
+ ]
478
+ },
479
+ {
480
+ "name": "it should pass with:",
481
+ "args": [
482
+ {
483
+ "offset": 10,
484
+ "val": "pass"
485
+ }
486
+ ]
487
+ }
488
+ ]
489
+ },
490
+ {
491
+ "source": "^it should (pass|fail) with exactly:$",
492
+ "flags": "",
493
+ "steps": [
494
+ {
495
+ "name": "it should fail with exactly:",
496
+ "args": [
497
+ {
498
+ "offset": 10,
499
+ "val": "fail"
500
+ }
501
+ ]
502
+ },
503
+ {
504
+ "name": "it should pass with exactly:",
505
+ "args": [
506
+ {
507
+ "offset": 10,
508
+ "val": "pass"
509
+ }
510
+ ]
511
+ }
512
+ ]
513
+ },
514
+ {
515
+ "source": "^it should (pass|fail) with regexp?:$",
516
+ "flags": "",
517
+ "steps": [
518
+
519
+ ]
520
+ },
521
+ {
522
+ "source": "^the stderr should contain \"([^\"]*)\"$",
523
+ "flags": "",
524
+ "steps": [
525
+
526
+ ]
527
+ },
528
+ {
529
+ "source": "^the stderr should contain:$",
530
+ "flags": "",
531
+ "steps": [
532
+
533
+ ]
534
+ },
535
+ {
536
+ "source": "^the stderr should contain exactly:$",
537
+ "flags": "",
538
+ "steps": [
539
+
540
+ ]
541
+ },
542
+ {
543
+ "source": "^the stdout should contain \"([^\"]*)\"$",
544
+ "flags": "",
545
+ "steps": [
546
+
547
+ ]
548
+ },
549
+ {
550
+ "source": "^the stdout should contain:$",
551
+ "flags": "",
552
+ "steps": [
553
+
554
+ ]
555
+ },
556
+ {
557
+ "source": "^the stdout should contain exactly:$",
558
+ "flags": "",
559
+ "steps": [
560
+
561
+ ]
562
+ },
563
+ {
564
+ "source": "^the stderr should not contain \"([^\"]*)\"$",
565
+ "flags": "",
566
+ "steps": [
567
+
568
+ ]
569
+ },
570
+ {
571
+ "source": "^the stderr should not contain:$",
572
+ "flags": "",
573
+ "steps": [
574
+
575
+ ]
576
+ },
577
+ {
578
+ "source": "^the stdout should not contain \"([^\"]*)\"$",
579
+ "flags": "",
580
+ "steps": [
581
+
582
+ ]
583
+ },
584
+ {
585
+ "source": "^the stdout should not contain:$",
586
+ "flags": "",
587
+ "steps": [
588
+
589
+ ]
590
+ },
591
+ {
592
+ "source": "^the stdout from \"([^\"]*)\" should contain \"([^\"]*)\"$",
593
+ "flags": "",
594
+ "steps": [
595
+
596
+ ]
597
+ },
598
+ {
599
+ "source": "^the stdout from \"([^\"]*)\" should not contain \"([^\"]*)\"$",
600
+ "flags": "",
601
+ "steps": [
602
+
603
+ ]
604
+ },
605
+ {
606
+ "source": "^the stderr from \"([^\"]*)\" should contain \"([^\"]*)\"$",
607
+ "flags": "",
608
+ "steps": [
609
+
610
+ ]
611
+ },
612
+ {
613
+ "source": "^the stderr from \"([^\"]*)\" should not contain \"([^\"]*)\"$",
614
+ "flags": "",
615
+ "steps": [
616
+
617
+ ]
618
+ },
619
+ {
620
+ "source": "^the file \"([^\"]*)\" should not exist$",
621
+ "flags": "",
622
+ "steps": [
623
+
624
+ ]
625
+ },
626
+ {
627
+ "source": "^the following files should exist:$",
628
+ "flags": "",
629
+ "steps": [
630
+
631
+ ]
632
+ },
633
+ {
634
+ "source": "^the following files should not exist:$",
635
+ "flags": "",
636
+ "steps": [
637
+
638
+ ]
639
+ },
640
+ {
641
+ "source": "^a file named \"([^\"]*)\" should exist$",
642
+ "flags": "",
643
+ "steps": [
644
+
645
+ ]
646
+ },
647
+ {
648
+ "source": "^a file named \"([^\"]*)\" should not exist$",
649
+ "flags": "",
650
+ "steps": [
651
+
652
+ ]
653
+ },
654
+ {
655
+ "source": "^a (\\d+) byte file named \"([^\"]*)\" should exist$",
656
+ "flags": "",
657
+ "steps": [
658
+
659
+ ]
660
+ },
661
+ {
662
+ "source": "^the following directories should exist:$",
663
+ "flags": "",
664
+ "steps": [
665
+
666
+ ]
667
+ },
668
+ {
669
+ "source": "^the following directories should not exist:$",
670
+ "flags": "",
671
+ "steps": [
672
+
673
+ ]
674
+ },
675
+ {
676
+ "source": "^a directory named \"([^\"]*)\" should exist$",
677
+ "flags": "",
678
+ "steps": [
679
+
680
+ ]
681
+ },
682
+ {
683
+ "source": "^a directory named \"([^\"]*)\" should not exist$",
684
+ "flags": "",
685
+ "steps": [
686
+
687
+ ]
688
+ },
689
+ {
690
+ "source": "^the file \"([^\"]*)\" should contain \"([^\"]*)\"$",
691
+ "flags": "",
692
+ "steps": [
693
+
694
+ ]
695
+ },
696
+ {
697
+ "source": "^the file \"([^\"]*)\" should not contain \"([^\"]*)\"$",
698
+ "flags": "",
699
+ "steps": [
700
+
701
+ ]
702
+ },
703
+ {
704
+ "source": "^the file \"([^\"]*)\" should contain exactly:$",
705
+ "flags": "",
706
+ "steps": [
707
+
708
+ ]
709
+ },
710
+ {
711
+ "source": "^the file \"([^\"]*)\" should match \\/([^\\/]*)\\/$",
712
+ "flags": "",
713
+ "steps": [
714
+
715
+ ]
716
+ },
717
+ {
718
+ "source": "^the file \"([^\"]*)\" should not match \\/([^\\/]*)\\/$",
719
+ "flags": "",
720
+ "steps": [
721
+
722
+ ]
723
+ },
724
+ {
725
+ "source": "^a scenario \"([^\"]*)\" with:$",
726
+ "flags": "",
727
+ "steps": [
728
+ {
729
+ "name": "a scenario \"Add three numbers\" with:",
730
+ "args": [
731
+ {
732
+ "offset": 12,
733
+ "val": "Add three numbers"
734
+ }
735
+ ]
736
+ },
737
+ {
738
+ "name": "a scenario \"Add two numbers\" with:",
739
+ "args": [
740
+ {
741
+ "offset": 12,
742
+ "val": "Add two numbers"
743
+ }
744
+ ]
745
+ },
746
+ {
747
+ "name": "a scenario \"Basic Arithmetic\" with:",
748
+ "args": [
749
+ {
750
+ "offset": 12,
751
+ "val": "Basic Arithmetic"
752
+ }
753
+ ]
754
+ },
755
+ {
756
+ "name": "a scenario \"Calculate PI\" with:",
757
+ "args": [
758
+ {
759
+ "offset": 12,
760
+ "val": "Calculate PI"
761
+ }
762
+ ]
763
+ },
764
+ {
765
+ "name": "a scenario \"Simple math\" with:",
766
+ "args": [
767
+ {
768
+ "offset": 12,
769
+ "val": "Simple math"
770
+ }
771
+ ]
772
+ },
773
+ {
774
+ "name": "a scenario \"Too simple math\" with:",
775
+ "args": [
776
+ {
777
+ "offset": 12,
778
+ "val": "Too simple math"
779
+ }
780
+ ]
781
+ }
782
+ ]
783
+ },
784
+ {
785
+ "source": "^the following feature:$",
786
+ "flags": "",
787
+ "steps": [
788
+ {
789
+ "name": "the following feature:",
790
+ "args": [
791
+
792
+ ]
793
+ }
794
+ ]
795
+ },
796
+ {
797
+ "source": "^the step \"([^\"]*)\" has a passing mapping$",
798
+ "flags": "",
799
+ "steps": [
800
+ {
801
+ "name": "the step \"I add 4 and 5\" has a passing mapping",
802
+ "args": [
803
+ {
804
+ "offset": 10,
805
+ "val": "I add 4 and 5"
806
+ }
807
+ ]
808
+ },
809
+ {
810
+ "name": "the step \"the result is 9\" has a passing mapping",
811
+ "args": [
812
+ {
813
+ "offset": 10,
814
+ "val": "the result is 9"
815
+ }
816
+ ]
817
+ }
818
+ ]
819
+ },
820
+ {
821
+ "source": "^the step \"([^\"]*)\" has a pending mapping$",
822
+ "flags": "",
823
+ "steps": [
824
+ {
825
+ "name": "the step \"I add 4 and 5\" has a pending mapping",
826
+ "args": [
827
+ {
828
+ "offset": 10,
829
+ "val": "I add 4 and 5"
830
+ }
831
+ ]
832
+ }
833
+ ]
834
+ },
835
+ {
836
+ "source": "^the step \"([^\"]*)\" has a failing mapping$",
837
+ "flags": "",
838
+ "steps": [
839
+ {
840
+ "name": "the step \"I add 4 and 5\" has a failing mapping",
841
+ "args": [
842
+ {
843
+ "offset": 10,
844
+ "val": "I add 4 and 5"
845
+ }
846
+ ]
847
+ }
848
+ ]
849
+ },
850
+ {
851
+ "source": "^Cucumber executes the scenario \"([^\"]*)\"$",
852
+ "flags": "",
853
+ "steps": [
854
+ {
855
+ "name": "Cucumber executes the scenario \"Basic Arithmetic\"",
856
+ "args": [
857
+ {
858
+ "offset": 32,
859
+ "val": "Basic Arithmetic"
860
+ }
861
+ ]
862
+ }
863
+ ]
864
+ },
865
+ {
866
+ "source": "^Cucumber runs the feature$",
867
+ "flags": "",
868
+ "steps": [
869
+ {
870
+ "name": "Cucumber runs the feature",
871
+ "args": [
872
+
873
+ ]
874
+ }
875
+ ]
876
+ },
877
+ {
878
+ "source": "^Cucumber runs the scenario with steps for a calculator$",
879
+ "flags": "",
880
+ "steps": [
881
+ {
882
+ "name": "Cucumber runs the scenario with steps for a calculator",
883
+ "args": [
884
+
885
+ ]
886
+ }
887
+ ]
888
+ },
889
+ {
890
+ "source": "^the scenario passes$",
891
+ "flags": "",
892
+ "steps": [
893
+ {
894
+ "name": "the scenario passes",
895
+ "args": [
896
+
897
+ ]
898
+ }
899
+ ]
900
+ },
901
+ {
902
+ "source": "^the scenario fails$",
903
+ "flags": "",
904
+ "steps": [
905
+ {
906
+ "name": "the scenario fails",
907
+ "args": [
908
+
909
+ ]
910
+ }
911
+ ]
912
+ },
913
+ {
914
+ "source": "^the scenario is pending$",
915
+ "flags": "",
916
+ "steps": [
917
+ {
918
+ "name": "the scenario is pending",
919
+ "args": [
920
+
921
+ ]
922
+ }
923
+ ]
924
+ },
925
+ {
926
+ "source": "^the scenario is undefined$",
927
+ "flags": "",
928
+ "steps": [
929
+ {
930
+ "name": "the scenario is undefined",
931
+ "args": [
932
+
933
+ ]
934
+ }
935
+ ]
936
+ },
937
+ {
938
+ "source": "^the step \"([^\"]*)\" is skipped$",
939
+ "flags": "",
940
+ "steps": [
941
+ {
942
+ "name": "the step \"the result is 9\" is skipped",
943
+ "args": [
944
+ {
945
+ "offset": 10,
946
+ "val": "the result is 9"
947
+ }
948
+ ]
949
+ }
950
+ ]
951
+ },
952
+ {
953
+ "source": "^the feature passes$",
954
+ "flags": "",
955
+ "steps": [
956
+ {
957
+ "name": "the feature passes",
958
+ "args": [
959
+
960
+ ]
961
+ }
962
+ ]
963
+ },
964
+ {
965
+ "source": "^I run cucumber \"(.+)\"$",
966
+ "flags": "",
967
+ "steps": [
968
+ {
969
+ "name": "I run cucumber \"--format json features/doc_string.feature\"",
970
+ "args": [
971
+ {
972
+ "offset": 16,
973
+ "val": "--format json features/doc_string.feature"
974
+ }
975
+ ]
976
+ },
977
+ {
978
+ "name": "I run cucumber \"--format json features/one_passing_one_failing.feature\"",
979
+ "args": [
980
+ {
981
+ "offset": 16,
982
+ "val": "--format json features/one_passing_one_failing.feature"
983
+ }
984
+ ]
985
+ },
986
+ {
987
+ "name": "I run cucumber \"-b --format json features/embed.feature\"",
988
+ "args": [
989
+ {
990
+ "offset": 16,
991
+ "val": "-b --format json features/embed.feature"
992
+ }
993
+ ]
994
+ },
995
+ {
996
+ "name": "I run cucumber \"features/f.feature --format Ze::Formator\"",
997
+ "args": [
998
+ {
999
+ "offset": 16,
1000
+ "val": "features/f.feature --format Ze::Formator"
1001
+ }
1002
+ ]
1003
+ },
1004
+ {
1005
+ "name": "I run cucumber \"features/foo.feature\"",
1006
+ "args": [
1007
+ {
1008
+ "offset": 16,
1009
+ "val": "features/foo.feature"
1010
+ }
1011
+ ]
1012
+ },
1013
+ {
1014
+ "name": "I run cucumber \"features/one_passing_one_failing.feature -r features -f rerun\"",
1015
+ "args": [
1016
+ {
1017
+ "offset": 16,
1018
+ "val": "features/one_passing_one_failing.feature -r features -f rerun"
1019
+ }
1020
+ ]
1021
+ },
1022
+ {
1023
+ "name": "I run cucumber \"features/sample.feature --tags ~@wip\"",
1024
+ "args": [
1025
+ {
1026
+ "offset": 16,
1027
+ "val": "features/sample.feature --tags ~@wip"
1028
+ }
1029
+ ]
1030
+ },
1031
+ {
1032
+ "name": "I run cucumber \"features/sample.feature -r features --tags ~@wip\"",
1033
+ "args": [
1034
+ {
1035
+ "offset": 16,
1036
+ "val": "features/sample.feature -r features --tags ~@wip"
1037
+ }
1038
+ ]
1039
+ }
1040
+ ]
1041
+ },
1042
+ {
1043
+ "source": "^it should (pass|fail) with JSON:$",
1044
+ "flags": "",
1045
+ "steps": [
1046
+ {
1047
+ "name": "it should fail with JSON:",
1048
+ "args": [
1049
+ {
1050
+ "offset": 10,
1051
+ "val": "fail"
1052
+ }
1053
+ ]
1054
+ },
1055
+ {
1056
+ "name": "it should pass with JSON:",
1057
+ "args": [
1058
+ {
1059
+ "offset": 10,
1060
+ "val": "pass"
1061
+ }
1062
+ ]
1063
+ }
1064
+ ]
1065
+ },
1066
+ {
1067
+ "source": "^a directory without standard Cucumber project directory structure$",
1068
+ "flags": "",
1069
+ "steps": [
1070
+ {
1071
+ "name": "a directory without standard Cucumber project directory structure",
1072
+ "args": [
1073
+
1074
+ ]
1075
+ }
1076
+ ]
1077
+ },
1078
+ {
1079
+ "source": "^a scenario with a step that looks like this:$",
1080
+ "flags": "",
1081
+ "steps": [
1082
+ {
1083
+ "name": "a scenario with a step that looks like this:",
1084
+ "args": [
1085
+
1086
+ ]
1087
+ }
1088
+ ]
1089
+ },
1090
+ {
1091
+ "source": "^a step definition that looks like this:$",
1092
+ "flags": "",
1093
+ "steps": [
1094
+ {
1095
+ "name": "a step definition that looks like this:",
1096
+ "args": [
1097
+
1098
+ ]
1099
+ }
1100
+ ]
1101
+ },
1102
+ {
1103
+ "source": "^I run the feature with the (\\w+) formatter$",
1104
+ "flags": "",
1105
+ "steps": [
1106
+ {
1107
+ "name": "I run the feature with the progress formatter",
1108
+ "args": [
1109
+ {
1110
+ "offset": 27,
1111
+ "val": "progress"
1112
+ }
1113
+ ]
1114
+ }
1115
+ ]
1116
+ },
1117
+ {
1118
+ "source": "^I am running spork in the background$",
1119
+ "flags": "",
1120
+ "steps": [
1121
+ {
1122
+ "name": "I am running spork in the background",
1123
+ "args": [
1124
+
1125
+ ]
1126
+ }
1127
+ ]
1128
+ },
1129
+ {
1130
+ "source": "^jeg drikker en \"([^\"]*)\"$",
1131
+ "flags": "",
1132
+ "steps": [
1133
+ {
1134
+ "name": "jeg drikker en \"øl\"",
1135
+ "args": [
1136
+ {
1137
+ "offset": 16,
1138
+ "val": "øl"
1139
+ }
1140
+ ]
1141
+ }
1142
+ ]
1143
+ },
1144
+ {
1145
+ "source": "^skal de andre si \"([^\"]*)\"$",
1146
+ "flags": "",
1147
+ "steps": [
1148
+ {
1149
+ "name": "skal de andre si \"skål\"",
1150
+ "args": [
1151
+ {
1152
+ "offset": 18,
1153
+ "val": "skål"
1154
+ }
1155
+ ]
1156
+ }
1157
+ ]
1158
+ }
1159
+ ]