cucumber 1.2.5 → 1.3.0

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 (110) hide show
  1. checksums.yaml +14 -6
  2. data/.ruby-gemset +1 -0
  3. data/.ruby-version +1 -0
  4. data/.travis.yml +1 -0
  5. data/.yardopts +1 -0
  6. data/CONTRIBUTING.md +2 -2
  7. data/History.md +38 -2
  8. data/bin/cucumber +2 -11
  9. data/cucumber.gemspec +3 -3
  10. data/cucumber.yml +5 -1
  11. data/examples/test_unit/Gemfile +4 -0
  12. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +1 -4
  13. data/examples/watir/README.textile +2 -2
  14. data/examples/watir/features/support/env.rb +10 -7
  15. data/features/.cucumber/stepdefs.json +747 -1354
  16. data/features/assertions.feature +6 -2
  17. data/features/background.feature +3 -0
  18. data/features/backtraces.feature +3 -3
  19. data/features/before_hook.feature +43 -0
  20. data/features/bootstrap.feature +14 -2
  21. data/features/custom_formatter.feature +1 -1
  22. data/features/drb_server_integration.feature +3 -3
  23. data/features/formatter_callbacks.feature +2 -2
  24. data/features/formatter_step_file_colon_line.feature +1 -1
  25. data/features/html_formatter.feature +52 -1
  26. data/features/json_formatter.feature +93 -7
  27. data/features/load_path.feature +14 -0
  28. data/features/nested_steps.feature +75 -3
  29. data/features/nested_steps_i18n.feature +36 -0
  30. data/features/pretty_formatter.feature +31 -0
  31. data/features/progress_formatter.feature +31 -0
  32. data/features/raketask.feature +51 -0
  33. data/features/rerun_formatter.feature +1 -1
  34. data/features/stats_formatters.feature +17 -14
  35. data/features/step_definitions/cucumber_steps.rb +6 -4
  36. data/features/support/env.rb +31 -4
  37. data/features/support/feature_factory.rb +17 -0
  38. data/features/tagged_hooks.feature +37 -195
  39. data/features/transforms.feature +15 -15
  40. data/gem_tasks/cucumber.rake +2 -0
  41. data/gem_tasks/yard.rake +10 -6
  42. data/legacy_features/README.md +14 -0
  43. data/legacy_features/language_help.feature +3 -1
  44. data/legacy_features/report_called_undefined_steps.feature +1 -0
  45. data/legacy_features/snippets_when_using_star_keyword.feature +1 -0
  46. data/legacy_features/support/env.rb +4 -0
  47. data/lib/cucumber/ast/background.rb +35 -35
  48. data/lib/cucumber/ast/empty_background.rb +33 -0
  49. data/lib/cucumber/ast/examples.rb +5 -2
  50. data/lib/cucumber/ast/feature.rb +24 -35
  51. data/lib/cucumber/ast/features.rb +4 -1
  52. data/lib/cucumber/ast/has_steps.rb +9 -17
  53. data/lib/cucumber/ast/location.rb +41 -0
  54. data/lib/cucumber/ast/scenario.rb +37 -50
  55. data/lib/cucumber/ast/scenario_outline.rb +62 -49
  56. data/lib/cucumber/ast/step.rb +23 -27
  57. data/lib/cucumber/ast/step_collection.rb +16 -0
  58. data/lib/cucumber/ast/step_invocation.rb +4 -1
  59. data/lib/cucumber/ast/tree_walker.rb +7 -0
  60. data/lib/cucumber/cli/configuration.rb +15 -3
  61. data/lib/cucumber/cli/main.rb +24 -11
  62. data/lib/cucumber/cli/options.rb +24 -16
  63. data/lib/cucumber/configuration.rb +4 -0
  64. data/lib/cucumber/core_ext/disable_mini_and_test_unit_autorun.rb +10 -34
  65. data/lib/cucumber/core_ext/instance_exec.rb +4 -1
  66. data/lib/cucumber/core_ext/proc.rb +2 -0
  67. data/lib/cucumber/feature_file.rb +5 -12
  68. data/lib/cucumber/formatter/console.rb +10 -0
  69. data/lib/cucumber/formatter/gherkin_formatter_adapter.rb +4 -4
  70. data/lib/cucumber/formatter/html.rb +7 -42
  71. data/lib/cucumber/formatter/interceptor.rb +4 -0
  72. data/lib/cucumber/formatter/json_pretty.rb +0 -4
  73. data/lib/cucumber/formatter/junit.rb +8 -2
  74. data/lib/cucumber/formatter/pretty.rb +5 -1
  75. data/lib/cucumber/formatter/progress.rb +4 -0
  76. data/lib/cucumber/formatter/unicode.rb +12 -25
  77. data/lib/cucumber/formatter/usage.rb +7 -2
  78. data/lib/cucumber/js_support/js_snippets.rb +1 -1
  79. data/lib/cucumber/load_path.rb +13 -0
  80. data/lib/cucumber/parser/gherkin_builder.rb +237 -81
  81. data/lib/cucumber/platform.rb +1 -1
  82. data/lib/cucumber/py_support/py_language.rb +1 -1
  83. data/lib/cucumber/rake/task.rb +5 -1
  84. data/lib/cucumber/rb_support/rb_language.rb +20 -19
  85. data/lib/cucumber/rb_support/rb_world.rb +63 -21
  86. data/lib/cucumber/rb_support/snippet.rb +108 -0
  87. data/lib/cucumber/runtime.rb +1 -0
  88. data/lib/cucumber/runtime/support_code.rb +2 -2
  89. data/lib/cucumber/unit.rb +11 -0
  90. data/lib/cucumber/wire_support/wire_language.rb +1 -1
  91. data/spec/cucumber/ast/background_spec.rb +13 -6
  92. data/spec/cucumber/ast/feature_factory.rb +20 -10
  93. data/spec/cucumber/ast/features_spec.rb +51 -0
  94. data/spec/cucumber/ast/scenario_outline_spec.rb +13 -7
  95. data/spec/cucumber/ast/step_spec.rb +6 -4
  96. data/spec/cucumber/cli/configuration_spec.rb +34 -1
  97. data/spec/cucumber/cli/main_spec.rb +36 -26
  98. data/spec/cucumber/cli/options_spec.rb +28 -19
  99. data/spec/cucumber/core_ext/proc_spec.rb +13 -1
  100. data/spec/cucumber/formatter/interceptor_spec.rb +8 -0
  101. data/spec/cucumber/formatter/junit_spec.rb +33 -0
  102. data/spec/cucumber/formatter/pretty_spec.rb +391 -0
  103. data/spec/cucumber/rb_support/rb_language_spec.rb +21 -50
  104. data/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +2 -4
  105. data/spec/cucumber/rb_support/snippet_spec.rb +128 -0
  106. data/spec/cucumber/step_match_spec.rb +2 -6
  107. metadata +62 -113
  108. data/.rvmrc +0 -1
  109. data/features/hooks.feature +0 -59
  110. data/legacy_features/call_steps_from_stepdefs.feature +0 -154
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm gemset use cucumber --create
@@ -1,59 +0,0 @@
1
- Feature: Tagged hooks
2
-
3
- Background:
4
- Given a file named "features/step_definitions/steps.rb" with:
5
- """
6
- Given /^this step works$/ do; end
7
- """
8
- And a file named "features/support/hooks.rb" with:
9
- """
10
- Before('~@no-boom') do
11
- raise 'boom'
12
- end
13
- """
14
- And a file named "features/f.feature" with:
15
- """
16
- Feature: With and without hooks
17
- Scenario: using hook
18
- Given this step works
19
-
20
- @no-boom
21
- Scenario: omitting hook
22
- Given this step works
23
- """
24
-
25
- Scenario: omit tagged hook
26
- When I run `cucumber features/f.feature:2`
27
- Then it should fail with:
28
- """
29
- Feature: With and without hooks
30
-
31
- Scenario: using hook # features/f.feature:2
32
- boom (RuntimeError)
33
- ./features/support/hooks.rb:2:in `Before'
34
- Given this step works # features/step_definitions/steps.rb:1
35
-
36
- Failing Scenarios:
37
- cucumber features/f.feature:2 # Scenario: using hook
38
-
39
- 1 scenario (1 failed)
40
- 1 step (1 skipped)
41
-
42
- """
43
-
44
- Scenario: omit tagged hook
45
- When I run `cucumber features/f.feature:6`
46
- Then it should pass with:
47
- """
48
- Feature: With and without hooks
49
-
50
- @no-boom
51
- Scenario: omitting hook # features/f.feature:6
52
- Given this step works # features/step_definitions/steps.rb:1
53
-
54
- 1 scenario (1 passed)
55
- 1 step (1 passed)
56
-
57
- """
58
-
59
-
@@ -1,154 +0,0 @@
1
- Feature: http://gist.github.com/221223
2
- In order to make it easier to extract several steps from
3
- a feature file to a step definition I want to be able to
4
- copy and paste.
5
-
6
- Background:
7
- Given a standard Cucumber project directory structure
8
- And a file named "features/f.feature" with:
9
- """
10
- Feature: Test
11
-
12
- Scenario: Multiline string
13
- Given a multiline string:
14
- \"\"\"
15
- hello
16
- world
17
- \"\"\"
18
-
19
- Scenario: Call a multiline string
20
- Given I call a multiline string with MAMA
21
-
22
- Scenario: Call a table
23
- Given I call a table with MAMA
24
-
25
- Scenario: Call a multiline string using keyword
26
- Given I use keyword to call a multiline string with BANG
27
- """
28
- And a file named "features/step_definitions/steps.rb" with:
29
- """
30
- And /^a multiline string:$/ do |s| x=1
31
- raise "I got multiline:\n#{s}"
32
- end
33
-
34
- Given /^a table:$/ do |t| x=1
35
- raise "I got table:\n#{t.raw.inspect}"
36
- end
37
-
38
- Given /^I call a multiline string with (.*)$/ do |s| x=1
39
- steps %Q{
40
- And a multiline string:
41
- \"\"\"
42
- hello
43
- #{s}
44
- \"\"\"
45
- }
46
- end
47
-
48
- Given /^I use keyword to call a multiline string with (.*)$/ do |s| x=1
49
- step 'a multiline string:', "Hello\n#{s}"
50
- end
51
-
52
- Given /^I call a table with (.*)$/ do |s| x=1
53
- steps %Q{
54
- Given a table:
55
- |a|b|
56
- |c|#{s}|
57
- }
58
- end
59
- """
60
-
61
- Scenario: Multiline string
62
- When I run cucumber features/f.feature:3
63
- Then STDERR should be empty
64
- And it should fail with
65
- """
66
- Feature: Test
67
-
68
- Scenario: Multiline string # features/f.feature:3
69
- Given a multiline string: # features/step_definitions/steps.rb:1
70
- \"\"\"
71
- hello
72
- world
73
- \"\"\"
74
- I got multiline:
75
- hello
76
- world (RuntimeError)
77
- ./features/step_definitions/steps.rb:2:in `/^a multiline string:$/'
78
- features/f.feature:4:in `Given a multiline string:'
79
-
80
- Failing Scenarios:
81
- cucumber features/f.feature:3 # Scenario: Multiline string
82
-
83
- 1 scenario (1 failed)
84
- 1 step (1 failed)
85
-
86
- """
87
-
88
- Scenario: Call multiline string
89
- When I run cucumber features/f.feature:10
90
- Then STDERR should be empty
91
- And it should fail with
92
- """
93
- Feature: Test
94
-
95
- Scenario: Call a multiline string # features/f.feature:10
96
- Given I call a multiline string with MAMA # features/step_definitions/steps.rb:9
97
- I got multiline:
98
- hello
99
- MAMA (RuntimeError)
100
- ./features/step_definitions/steps.rb:2:in `/^a multiline string:$/'
101
- features/f.feature:11:in `Given I call a multiline string with MAMA'
102
-
103
- Failing Scenarios:
104
- cucumber features/f.feature:10 # Scenario: Call a multiline string
105
-
106
- 1 scenario (1 failed)
107
- 1 step (1 failed)
108
-
109
- """
110
-
111
- Scenario: Call table
112
- When I run cucumber features/f.feature:13
113
- Then STDERR should be empty
114
- And it should fail with
115
- """
116
- Feature: Test
117
-
118
- Scenario: Call a table # features/f.feature:13
119
- Given I call a table with MAMA # features/step_definitions/steps.rb:23
120
- I got table:
121
- [["a", "b"], ["c", "MAMA"]] (RuntimeError)
122
- ./features/step_definitions/steps.rb:6:in `/^a table:$/'
123
- features/f.feature:14:in `Given I call a table with MAMA'
124
-
125
- Failing Scenarios:
126
- cucumber features/f.feature:13 # Scenario: Call a table
127
-
128
- 1 scenario (1 failed)
129
- 1 step (1 failed)
130
-
131
- """
132
-
133
- Scenario: Call multiline string with keyword
134
- When I run cucumber features/f.feature:16
135
- Then STDERR should be empty
136
- And it should fail with
137
- """
138
- Feature: Test
139
-
140
- Scenario: Call a multiline string using keyword # features/f.feature:16
141
- Given I use keyword to call a multiline string with BANG # features/step_definitions/steps.rb:19
142
- I got multiline:
143
- Hello
144
- BANG (RuntimeError)
145
- ./features/step_definitions/steps.rb:2:in `/^a multiline string:$/'
146
- features/f.feature:17:in `Given I use keyword to call a multiline string with BANG'
147
-
148
- Failing Scenarios:
149
- cucumber features/f.feature:16 # Scenario: Call a multiline string using keyword
150
-
151
- 1 scenario (1 failed)
152
- 1 step (1 failed)
153
-
154
- """