cuke_modeler 0.0.1

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