cuke_modeler 0.4.1 → 1.0.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 (252) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +17 -17
  3. data/.travis.yml +1 -1
  4. data/Gemfile +4 -0
  5. data/History.rdoc +71 -3
  6. data/LICENSE.txt +22 -22
  7. data/README.md +24 -10
  8. data/Rakefile +2 -12
  9. data/cuke_modeler.gemspec +1 -1
  10. data/features/analysis/test_comparison.feature +37 -122
  11. data/features/modeling/background_modeling.feature +77 -0
  12. data/features/modeling/background_output.feature +42 -0
  13. data/features/modeling/cell_modeling.feature +23 -0
  14. data/features/modeling/cell_output.feature +22 -0
  15. data/features/modeling/directory_modeling.feature +65 -0
  16. data/features/modeling/directory_output.feature +12 -0
  17. data/features/modeling/doc_string_modeling.feature +61 -0
  18. data/features/modeling/doc_string_output.feature +32 -0
  19. data/features/modeling/example_modeling.feature +125 -0
  20. data/features/modeling/example_output.feature +39 -0
  21. data/features/modeling/feature_file_modeling.feature +40 -0
  22. data/features/modeling/feature_file_output.feature +12 -0
  23. data/features/modeling/feature_modeling.feature +109 -0
  24. data/features/modeling/feature_output.feature +104 -0
  25. data/features/modeling/model_output.feature +22 -0
  26. data/features/modeling/model_structure.feature +48 -0
  27. data/features/modeling/outline_modeling.feature +144 -0
  28. data/features/modeling/outline_output.feature +69 -0
  29. data/features/modeling/row_modeling.feature +48 -0
  30. data/features/modeling/row_output.feature +22 -0
  31. data/features/modeling/scenario_modeling.feature +118 -0
  32. data/features/modeling/scenario_output.feature +45 -0
  33. data/features/modeling/step_modeling.feature +84 -0
  34. data/features/modeling/step_output.feature +29 -0
  35. data/features/modeling/table_modeling.feature +50 -0
  36. data/features/modeling/table_output.feature +24 -0
  37. data/features/modeling/tag_modeling.feature +43 -0
  38. data/features/modeling/tag_output.feature +22 -0
  39. data/features/step_definitions/action_steps.rb +11 -1
  40. data/features/step_definitions/background_steps.rb +1 -85
  41. data/features/step_definitions/directory_steps.rb +2 -48
  42. data/features/step_definitions/doc_string_steps.rb +1 -67
  43. data/features/step_definitions/feature_file_steps.rb +2 -37
  44. data/features/step_definitions/feature_steps.rb +4 -100
  45. data/features/step_definitions/modeling_steps.rb +44 -0
  46. data/features/step_definitions/setup_steps.rb +19 -41
  47. data/features/step_definitions/step_steps.rb +2 -166
  48. data/features/step_definitions/table_steps.rb +1 -58
  49. data/features/step_definitions/tag_steps.rb +2 -72
  50. data/features/step_definitions/verification_steps.rb +152 -4
  51. data/features/support/env.rb +4 -6
  52. data/gemfiles/{gherkin.gemfile → gherkin2.gemfile} +4 -0
  53. data/gemfiles/gherkin3.gemfile +4 -0
  54. data/gemfiles/gherkin4.gemfile +4 -0
  55. data/lib/cuke_modeler.rb +24 -22
  56. data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +103 -31
  57. data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +103 -40
  58. data/lib/cuke_modeler/adapters/gherkin_4_adapter.rb +111 -50
  59. data/lib/cuke_modeler/containing.rb +255 -4
  60. data/lib/cuke_modeler/described.rb +28 -0
  61. data/lib/cuke_modeler/models/background.rb +66 -0
  62. data/lib/cuke_modeler/models/cell.rb +48 -0
  63. data/lib/cuke_modeler/models/directory.rb +95 -0
  64. data/lib/cuke_modeler/models/doc_string.rb +59 -0
  65. data/lib/cuke_modeler/models/example.rb +167 -0
  66. data/lib/cuke_modeler/models/feature.rb +106 -0
  67. data/lib/cuke_modeler/models/feature_file.rb +64 -0
  68. data/lib/cuke_modeler/models/model.rb +32 -0
  69. data/lib/cuke_modeler/models/outline.rb +79 -0
  70. data/lib/cuke_modeler/models/row.rb +49 -0
  71. data/lib/cuke_modeler/models/scenario.rb +69 -0
  72. data/lib/cuke_modeler/models/step.rb +68 -0
  73. data/lib/cuke_modeler/models/table.rb +67 -0
  74. data/lib/cuke_modeler/models/tag.rb +46 -0
  75. data/lib/cuke_modeler/named.rb +19 -0
  76. data/lib/cuke_modeler/nested.rb +22 -15
  77. data/lib/cuke_modeler/parsed.rb +11 -0
  78. data/lib/cuke_modeler/parsing.rb +66 -83
  79. data/lib/cuke_modeler/sourceable.rb +3 -11
  80. data/lib/cuke_modeler/stepped.rb +24 -0
  81. data/lib/cuke_modeler/taggable.rb +6 -29
  82. data/lib/cuke_modeler/version.rb +2 -1
  83. data/spec/integration/background_integration_spec.rb +332 -7
  84. data/spec/integration/cell_integration_spec.rb +321 -0
  85. data/spec/integration/directory_integration_spec.rb +175 -9
  86. data/spec/integration/doc_string_integration_spec.rb +318 -7
  87. data/spec/integration/example_integration_spec.rb +602 -19
  88. data/spec/integration/feature_file_integration_spec.rb +98 -3
  89. data/spec/integration/feature_integration_spec.rb +445 -27
  90. data/spec/integration/gherkin_2_adapter_spec.rb +122 -0
  91. data/spec/integration/gherkin_3_adapter_spec.rb +125 -0
  92. data/spec/integration/gherkin_4_adapter_spec.rb +123 -0
  93. data/spec/integration/model_integration_spec.rb +15 -0
  94. data/spec/integration/nested_integration_spec.rb +91 -0
  95. data/spec/integration/outline_integration_spec.rb +485 -12
  96. data/spec/integration/parsing_integration_spec.rb +85 -0
  97. data/spec/integration/row_integration_spec.rb +221 -18
  98. data/spec/integration/scenario_integration_spec.rb +368 -14
  99. data/spec/integration/shared/models_integration_specs.rb +18 -0
  100. data/spec/integration/step_integration_spec.rb +328 -77
  101. data/spec/integration/table_integration_spec.rb +242 -20
  102. data/spec/integration/tag_integration_spec.rb +178 -13
  103. data/spec/spec_helper.rb +32 -18
  104. data/spec/unit/background_unit_spec.rb +24 -44
  105. data/spec/unit/cell_unit_spec.rb +73 -0
  106. data/spec/unit/described_unit_spec.rb +23 -0
  107. data/spec/unit/directory_unit_spec.rb +52 -62
  108. data/spec/unit/doc_string_unit_spec.rb +47 -100
  109. data/spec/unit/example_unit_spec.rb +50 -296
  110. data/spec/unit/feature_file_unit_spec.rb +53 -52
  111. data/spec/unit/feature_unit_spec.rb +39 -83
  112. data/spec/unit/model_unit_spec.rb +15 -0
  113. data/spec/unit/named_unit_spec.rb +23 -0
  114. data/spec/unit/nested_unit_spec.rb +24 -21
  115. data/spec/unit/outline_unit_spec.rb +46 -69
  116. data/spec/unit/parsed_unit_spec.rb +27 -0
  117. data/spec/unit/parsing_unit_spec.rb +2 -70
  118. data/spec/unit/row_unit_spec.rb +22 -51
  119. data/spec/unit/scenario_unit_spec.rb +27 -59
  120. data/spec/unit/{bare_bones_unit_specs.rb → shared/bare_bones_models_unit_specs.rb} +2 -2
  121. data/spec/unit/shared/containing_models_unit_specs.rb +18 -0
  122. data/spec/unit/shared/described_models_unit_specs.rb +38 -0
  123. data/spec/unit/shared/models_unit_specs.rb +15 -0
  124. data/spec/unit/shared/named_models_unit_specs.rb +39 -0
  125. data/spec/unit/shared/nested_models_unit_specs.rb +51 -0
  126. data/spec/unit/shared/parsed_models_unit_specs.rb +39 -0
  127. data/spec/unit/shared/prepopulated_models_unit_specs.rb +18 -0
  128. data/spec/unit/shared/sourced_models_unit_specs.rb +39 -0
  129. data/spec/unit/shared/stepped_models_unit_specs.rb +46 -0
  130. data/spec/unit/shared/stringifiable_models_unit_specs.rb +18 -0
  131. data/spec/unit/shared/tagged_models_unit_specs.rb +72 -0
  132. data/spec/unit/sourceable_unit_spec.rb +12 -4
  133. data/spec/unit/step_unit_spec.rb +40 -231
  134. data/spec/unit/stepped_unit_spec.rb +23 -0
  135. data/spec/unit/table_unit_spec.rb +27 -89
  136. data/spec/unit/tag_unit_spec.rb +30 -53
  137. data/spec/unit/taggable_unit_spec.rb +26 -42
  138. data/todo.txt +32 -0
  139. metadata +135 -217
  140. data/features/analysis/test_manipulation.feature +0 -37
  141. data/features/modeling/gherkin/background_modeling.feature +0 -65
  142. data/features/modeling/gherkin/background_output.feature +0 -131
  143. data/features/modeling/gherkin/directory_modeling.feature +0 -110
  144. data/features/modeling/gherkin/directory_output.feature +0 -14
  145. data/features/modeling/gherkin/doc_string_modeling.feature +0 -53
  146. data/features/modeling/gherkin/doc_string_output.feature +0 -72
  147. data/features/modeling/gherkin/example_modeling.feature +0 -101
  148. data/features/modeling/gherkin/example_output.feature +0 -193
  149. data/features/modeling/gherkin/feature_file_modeling.feature +0 -54
  150. data/features/modeling/gherkin/feature_file_output.feature +0 -14
  151. data/features/modeling/gherkin/feature_modeling.feature +0 -154
  152. data/features/modeling/gherkin/feature_output.feature +0 -245
  153. data/features/modeling/gherkin/outline_modeling.feature +0 -90
  154. data/features/modeling/gherkin/outline_output.feature +0 -198
  155. data/features/modeling/gherkin/row_modeling.feature +0 -68
  156. data/features/modeling/gherkin/row_output.feature +0 -28
  157. data/features/modeling/gherkin/scenario_modeling.feature +0 -79
  158. data/features/modeling/gherkin/scenario_output.feature +0 -148
  159. data/features/modeling/gherkin/step_modeling.feature +0 -75
  160. data/features/modeling/gherkin/step_output.feature +0 -53
  161. data/features/modeling/gherkin/table_modeling.feature +0 -42
  162. data/features/modeling/gherkin/table_output.feature +0 -43
  163. data/features/modeling/gherkin/table_row_modeling.feature +0 -57
  164. data/features/modeling/gherkin/table_row_output.feature +0 -28
  165. data/features/modeling/gherkin/tag_modeling.feature +0 -48
  166. data/features/modeling/gherkin/tag_output.feature +0 -17
  167. data/features/modeling/gherkin3/background_modeling.feature +0 -64
  168. data/features/modeling/gherkin3/background_output.feature +0 -131
  169. data/features/modeling/gherkin3/directory_modeling.feature +0 -110
  170. data/features/modeling/gherkin3/directory_output.feature +0 -14
  171. data/features/modeling/gherkin3/doc_string_modeling.feature +0 -53
  172. data/features/modeling/gherkin3/doc_string_output.feature +0 -72
  173. data/features/modeling/gherkin3/example_modeling.feature +0 -100
  174. data/features/modeling/gherkin3/example_output.feature +0 -207
  175. data/features/modeling/gherkin3/feature_file_modeling.feature +0 -54
  176. data/features/modeling/gherkin3/feature_file_output.feature +0 -14
  177. data/features/modeling/gherkin3/feature_modeling.feature +0 -155
  178. data/features/modeling/gherkin3/feature_output.feature +0 -249
  179. data/features/modeling/gherkin3/outline_modeling.feature +0 -89
  180. data/features/modeling/gherkin3/outline_output.feature +0 -255
  181. data/features/modeling/gherkin3/row_modeling.feature +0 -68
  182. data/features/modeling/gherkin3/row_output.feature +0 -28
  183. data/features/modeling/gherkin3/scenario_modeling.feature +0 -78
  184. data/features/modeling/gherkin3/scenario_output.feature +0 -148
  185. data/features/modeling/gherkin3/step_modeling.feature +0 -75
  186. data/features/modeling/gherkin3/step_output.feature +0 -53
  187. data/features/modeling/gherkin3/table_modeling.feature +0 -42
  188. data/features/modeling/gherkin3/table_output.feature +0 -43
  189. data/features/modeling/gherkin3/table_row_modeling.feature +0 -57
  190. data/features/modeling/gherkin3/table_row_output.feature +0 -28
  191. data/features/modeling/gherkin3/tag_modeling.feature +0 -49
  192. data/features/modeling/gherkin3/tag_output.feature +0 -17
  193. data/features/modeling/gherkin4/background_modeling.feature +0 -64
  194. data/features/modeling/gherkin4/background_output.feature +0 -131
  195. data/features/modeling/gherkin4/directory_modeling.feature +0 -110
  196. data/features/modeling/gherkin4/directory_output.feature +0 -14
  197. data/features/modeling/gherkin4/doc_string_modeling.feature +0 -53
  198. data/features/modeling/gherkin4/doc_string_output.feature +0 -72
  199. data/features/modeling/gherkin4/example_modeling.feature +0 -100
  200. data/features/modeling/gherkin4/example_output.feature +0 -193
  201. data/features/modeling/gherkin4/feature_file_modeling.feature +0 -54
  202. data/features/modeling/gherkin4/feature_file_output.feature +0 -14
  203. data/features/modeling/gherkin4/feature_modeling.feature +0 -153
  204. data/features/modeling/gherkin4/feature_output.feature +0 -245
  205. data/features/modeling/gherkin4/outline_modeling.feature +0 -89
  206. data/features/modeling/gherkin4/outline_output.feature +0 -198
  207. data/features/modeling/gherkin4/row_modeling.feature +0 -68
  208. data/features/modeling/gherkin4/row_output.feature +0 -28
  209. data/features/modeling/gherkin4/scenario_modeling.feature +0 -78
  210. data/features/modeling/gherkin4/scenario_output.feature +0 -148
  211. data/features/modeling/gherkin4/step_modeling.feature +0 -75
  212. data/features/modeling/gherkin4/step_output.feature +0 -53
  213. data/features/modeling/gherkin4/table_modeling.feature +0 -42
  214. data/features/modeling/gherkin4/table_output.feature +0 -43
  215. data/features/modeling/gherkin4/table_row_modeling.feature +0 -57
  216. data/features/modeling/gherkin4/table_row_output.feature +0 -28
  217. data/features/modeling/gherkin4/tag_modeling.feature +0 -48
  218. data/features/modeling/gherkin4/tag_output.feature +0 -17
  219. data/features/step_definitions/outline_steps.rb +0 -258
  220. data/features/step_definitions/test_steps.rb +0 -123
  221. data/lib/cuke_modeler/background.rb +0 -38
  222. data/lib/cuke_modeler/directory.rb +0 -83
  223. data/lib/cuke_modeler/doc_string.rb +0 -87
  224. data/lib/cuke_modeler/example.rb +0 -195
  225. data/lib/cuke_modeler/feature.rb +0 -147
  226. data/lib/cuke_modeler/feature_element.rb +0 -73
  227. data/lib/cuke_modeler/feature_file.rb +0 -77
  228. data/lib/cuke_modeler/outline.rb +0 -68
  229. data/lib/cuke_modeler/raw.rb +0 -20
  230. data/lib/cuke_modeler/row.rb +0 -64
  231. data/lib/cuke_modeler/scenario.rb +0 -45
  232. data/lib/cuke_modeler/step.rb +0 -216
  233. data/lib/cuke_modeler/table.rb +0 -90
  234. data/lib/cuke_modeler/table_row.rb +0 -64
  235. data/lib/cuke_modeler/tag.rb +0 -62
  236. data/lib/cuke_modeler/test_element.rb +0 -79
  237. data/lib/cuke_modeler/world.rb +0 -113
  238. data/spec/integration/table_row_integration_spec.rb +0 -76
  239. data/spec/integration/world_integration_spec.rb +0 -14
  240. data/spec/unit/containing_element_unit_specs.rb +0 -18
  241. data/spec/unit/feature_element_unit_spec.rb +0 -19
  242. data/spec/unit/feature_element_unit_specs.rb +0 -52
  243. data/spec/unit/nested_element_unit_specs.rb +0 -39
  244. data/spec/unit/prepopulated_unit_specs.rb +0 -14
  245. data/spec/unit/raw_element_unit_specs.rb +0 -27
  246. data/spec/unit/raw_unit_spec.rb +0 -28
  247. data/spec/unit/sourced_element_unit_specs.rb +0 -18
  248. data/spec/unit/table_row_unit_spec.rb +0 -102
  249. data/spec/unit/tagged_element_unit_specs.rb +0 -67
  250. data/spec/unit/test_element_unit_spec.rb +0 -54
  251. data/spec/unit/test_element_unit_specs.rb +0 -34
  252. data/spec/unit/world_unit_spec.rb +0 -140
@@ -1,54 +0,0 @@
1
- @gherkin3
2
- Feature: Feature files can be modeled.
3
-
4
-
5
- Acceptance criteria
6
-
7
- 1. All conceptual pieces of a .feature file can be modeled:
8
- - the file's name
9
- - the file's full path
10
- - the file's features (one or zero per file)
11
-
12
- 2. Feature files can be outputted in a convenient form
13
-
14
-
15
- Background: Test file setup.
16
- Given the following feature file "test_file_1.feature":
17
- """
18
- Feature: The first test feature
19
- Just a dummy feature.
20
- """
21
- And the following feature file "test_file_2.feature":
22
- """
23
- Feature: The second test feature
24
- Just a dummy feature.
25
- """
26
- # And the following feature file "why_would_you_make_an_empty_file.feature":
27
- # """
28
- # """
29
- When the file "test_file_1.feature" is read
30
- And the file "test_file_2.feature" is read
31
- # And the file "why_would_you_make_an_empty_file.feature" is read
32
-
33
-
34
- Scenario: The file's feature is modeled.
35
- Then file "1" is found to have the following properties:
36
- | name | test_file_1.feature |
37
- | path | path_to/test_file_1.feature |
38
- | feature_count | 1 |
39
- And file "1" features are as follows:
40
- | The first test feature |
41
- Then file "2" is found to have the following properties:
42
- | name | test_file_2.feature |
43
- | path | path_to/test_file_2.feature |
44
- | feature_count | 1 |
45
- And file "2" features are as follows:
46
- | The second test feature |
47
- # Then file "3" is found to have the following properties:
48
- # | name | why_would_you_make_an_empty_file.feature |
49
- # | path | path_to/why_would_you_make_an_empty_file.feature |
50
- # | feature_count | 0 |
51
- # And file "3" has no features
52
-
53
- Scenario: Convenient output of a feature file
54
- Then the feature file has convenient output
@@ -1,14 +0,0 @@
1
- @gherkin3
2
- Feature: Outputting feature file elements
3
-
4
- The output of an element model is a representation of the element as it would
5
- appear in gherkin.
6
-
7
-
8
- Scenario: Output of a feature file
9
- Given a feature file element based on "some_feature_file.feature"
10
- When it is outputted
11
- Then the following text is provided:
12
- """
13
- path_to/some_feature_file.feature
14
- """
@@ -1,155 +0,0 @@
1
- @gherkin3
2
- Feature: Features can be modeled.
3
-
4
-
5
- Acceptance criteria
6
-
7
- 1. All conceptual pieces of a feature can be modeled:
8
- - the feature's name
9
- - the feature's description
10
- - the feature's tags
11
- - the feature's scenarios
12
- - the feature's outlines
13
- - the feature's background
14
- - the feature's total number of tests
15
- - the feature's total number of test cases
16
- - the feature's source line
17
- - the feature's raw element
18
-
19
- 2. Features can be outputted in a convenient form
20
-
21
-
22
- Background: Test file setup.
23
- Given the following feature file "much_stuff.feature":
24
- """
25
- @a_feature_level_tag @and_another
26
-
27
- Feature: The test feature name.
28
-
29
- Some feature description.
30
-
31
- Some more.
32
- And some more.
33
-
34
- Background: Some general test setup stuff.
35
- * some setup step
36
-
37
- Scenario: The first scenario's name.
38
- * a step
39
-
40
- Scenario Outline: The scenario outline's name.
41
- * a step
42
- Examples:
43
- | param |
44
- | x |
45
- | y |
46
- Examples:
47
- | param |
48
- | z |
49
-
50
- Scenario: The second scenario's name.
51
- * a step
52
- """
53
- And the following feature file "barely_any_stuff.feature":
54
- """
55
- Feature:
56
-
57
- Background:
58
-
59
- Scenario:
60
-
61
- Scenario Outline:
62
- Examples:
63
- | param |
64
- | value |
65
- """
66
- And the following feature file "as_empty_as_it_gets.feature":
67
- """
68
- Feature:
69
- """
70
- When the file "much_stuff.feature" is read
71
- And the file "barely_any_stuff.feature" is read
72
- And the file "as_empty_as_it_gets.feature" is read
73
-
74
-
75
- Scenario: The raw feature element is modeled.
76
- Then the feature correctly stores its underlying implementation
77
-
78
- Scenario: The feature's properties are modeled.
79
- Then feature "1" is found to have the following properties:
80
- | name | The test feature name. |
81
- | test_count | 3 |
82
- | test_case_count | 5 |
83
- | source_line | 3 |
84
- And feature "2" is found to have the following properties:
85
- | name | |
86
- | test_count | 2 |
87
- | test_case_count | 2 |
88
- | source_line | 1 |
89
-
90
- And feature "3" is found to have the following properties:
91
- | name | |
92
- | test_count | 0 |
93
- | test_case_count | 0 |
94
- | source_line | 1 |
95
-
96
- Scenario: The feature's description is modeled.
97
- Then feature "1" has the following description:
98
- """
99
- Some feature description.
100
-
101
- Some more.
102
- And some more.
103
- """
104
- And feature "2" has no description
105
- And feature "3" has no description
106
-
107
- Scenario: The feature's tags are modeled.
108
- Then feature "1" is found to have the following tags:
109
- | @a_feature_level_tag |
110
- | @and_another |
111
- And feature "2" has no tags
112
- And feature "3" has no tags
113
-
114
- Scenario: The feature's scenarios are modeled.
115
- Then feature "1" is found to have the following properties:
116
- | scenario_count | 2 |
117
- And feature "1" scenarios are as follows:
118
- | The first scenario's name. |
119
- | The second scenario's name. |
120
- And feature "2" is found to have the following properties:
121
- | scenario_count | 1 |
122
- And feature "2" scenarios are as follows:
123
- | |
124
- And feature "3" is found to have the following properties:
125
- | scenario_count | 0 |
126
- And feature "3" has no scenarios
127
-
128
- Scenario: The feature's outlines are modeled.
129
- Then feature "1" is found to have the following properties:
130
- | outline_count | 1 |
131
- And feature "1" outlines are as follows:
132
- | The scenario outline's name. |
133
- And feature "2" is found to have the following properties:
134
- | outline_count | 1 |
135
- And feature "2" outlines are as follows:
136
- | |
137
- And feature "3" is found to have the following properties:
138
- | outline_count | 0 |
139
- And feature "3" has no outlines
140
-
141
- Scenario: The feature's background is modeled.
142
- Then feature "1" is found to have the following properties:
143
- | has_background? | true |
144
- And feature "1" background is as follows:
145
- | Some general test setup stuff. |
146
- And feature "2" is found to have the following properties:
147
- | has_background? | true |
148
- And feature "2" background is as follows:
149
- | |
150
- And feature "3" is found to have the following properties:
151
- | has_background? | false |
152
- And feature "3" has no background
153
-
154
- Scenario: Convenient output of a feature
155
- Then the feature has convenient output
@@ -1,249 +0,0 @@
1
- @gherkin3
2
- Feature: Outputting feature elements
3
-
4
- The output of an element model is a representation of the element as it would
5
- appear in gherkin.
6
-
7
-
8
- Scenario: Output of a feature that does not have a name
9
- Given a feature element based on the following gherkin:
10
- """
11
- Feature:
12
- """
13
- When it is outputted
14
- Then the following text is provided:
15
- """
16
- Feature:
17
- """
18
-
19
- Scenario: Output of a feature that does have a name
20
- Given a feature element based on the following gherkin:
21
- """
22
- Feature: with a name
23
- """
24
- When it is outputted
25
- Then the following text is provided:
26
- """
27
- Feature: with a name
28
- """
29
-
30
- Scenario: Output of a feature that has tags
31
- Given a feature element based on the following gherkin:
32
- """
33
- @tag1@tag2
34
- @tag3
35
- Feature:
36
- """
37
- When it is outputted
38
- Then the following text is provided:
39
- """
40
- @tag1 @tag2 @tag3
41
- Feature:
42
- """
43
-
44
- Scenario: Output of a feature that has a description, no first line buffer
45
- Given a feature element based on the following gherkin:
46
- """
47
- Feature:
48
- Some description.
49
- Some more description.
50
- """
51
- When it is outputted
52
- Then the following text is provided:
53
- """
54
- Feature:
55
-
56
- Some description.
57
- Some more description.
58
- """
59
-
60
- Scenario: Output of a feature that has a description, first line is blank
61
- Given a feature element based on the following gherkin:
62
- """
63
- Feature:
64
-
65
- Some description.
66
- Some more description.
67
- """
68
- When it is outputted
69
- Then the following text is provided:
70
- """
71
- Feature:
72
-
73
- Some description.
74
- Some more description.
75
- """
76
-
77
- Scenario: Output of a feature that has a description, first line is only whitespace
78
- Given a feature element based on the following gherkin:
79
- """
80
- Feature:
81
-
82
- Some description.
83
- Some more description.
84
- """
85
- When it is outputted
86
- Then the following text is provided:
87
- """
88
- Feature:
89
-
90
- Some description.
91
- Some more description.
92
- """
93
-
94
- Scenario: Output of a feature that has a background
95
- Given a feature element based on the following gherkin:
96
- """
97
- Feature:
98
-
99
- Background:
100
- * a step
101
- * another step
102
- """
103
- When it is outputted
104
- Then the following text is provided:
105
- """
106
- Feature:
107
-
108
- Background:
109
- * a step
110
- * another step
111
- """
112
-
113
- Scenario: Output of a feature that has a scenario
114
- Given a feature element based on the following gherkin:
115
- """
116
- Feature:
117
-
118
- Scenario:
119
- * a step
120
- * another step
121
- """
122
- When it is outputted
123
- Then the following text is provided:
124
- """
125
- Feature:
126
-
127
- Scenario:
128
- * a step
129
- * another step
130
- """
131
-
132
- Scenario: Output of a feature that has an outline
133
- Given a feature element based on the following gherkin:
134
- """
135
- Feature:
136
-
137
- Scenario Outline:
138
- * a step
139
- * another step
140
- Examples:
141
- |param|
142
- |value|
143
- """
144
- When it is outputted
145
- Then the following text is provided:
146
- """
147
- Feature:
148
-
149
- Scenario Outline:
150
- * a step
151
- * another step
152
-
153
- Examples:
154
- | param |
155
- | value |
156
- """
157
-
158
- Scenario: Output of a feature that contains all possible parts
159
- Given a feature element based on the following gherkin:
160
- """
161
- @tag1@tag2
162
- @tag3
163
- Feature: A feature with everything it could have
164
- Including a description
165
- and then some.
166
- Background:
167
- Background
168
- description
169
- * a step
170
- |value1|
171
- * another step
172
- @scenario_tag
173
- Scenario:
174
- Scenario
175
- description
176
- * a step
177
- * another step
178
- \"\"\"
179
- some text
180
- \"\"\"
181
- @outline_tag
182
- Scenario Outline:
183
- Outline
184
- description
185
- * a step
186
- |value2|
187
- * another step
188
- \"\"\"
189
- some text
190
- \"\"\"
191
- @example_tag
192
- Examples:
193
- Example
194
- description
195
- |param|
196
- |value|
197
- """
198
- When it is outputted
199
- Then the following text is provided:
200
- """
201
- @tag1 @tag2 @tag3
202
- Feature: A feature with everything it could have
203
-
204
- Including a description
205
- and then some.
206
-
207
- Background:
208
-
209
- Background
210
- description
211
-
212
- * a step
213
- | value1 |
214
- * another step
215
-
216
- @scenario_tag
217
- Scenario:
218
-
219
- Scenario
220
- description
221
-
222
- * a step
223
- * another step
224
- \"\"\"
225
- some text
226
- \"\"\"
227
-
228
- @outline_tag
229
- Scenario Outline:
230
-
231
- Outline
232
- description
233
-
234
- * a step
235
- | value2 |
236
- * another step
237
- \"\"\"
238
- some text
239
- \"\"\"
240
-
241
- @example_tag
242
- Examples:
243
-
244
- Example
245
- description
246
-
247
- | param |
248
- | value |
249
- """