cuke_cataloger 1.4.1 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +3 -0
- data/History.md +5 -0
- data/LICENSE.txt +1 -1
- data/lib/cuke_cataloger/unique_test_case_tagger.rb +4 -4
- data/lib/cuke_cataloger/version.rb +1 -1
- data/testing/cucumber/features/formatting.feature +0 -3
- data/testing/cucumber/features/tag_indexing.feature +3 -3
- data/testing/cucumber/features/test_case_scanning_payload.feature +0 -2
- data/testing/cucumber/features/test_case_tagging.feature +2 -2
- data/testing/cucumber/features/test_case_validation.feature +3 -20
- data/testing/cucumber/step_definitions/action_steps.rb +8 -2
- data/testing/cucumber/step_definitions/verification_steps.rb +1 -1
- data/testing/cucumber/support/env.rb +2 -2
- data/testing/file_helper.rb +3 -0
- data/testing/rspec/spec/unique_test_case_tagger_integration_spec.rb +179 -4
- data/testing/rspec/spec/unique_test_case_tagger_unit_spec.rb +12 -10
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ac272590c9348e48e1b7d77649a6666af6447daeeb6208f3aa90b4126f9ec64d
|
4
|
+
data.tar.gz: ae28c6e4f97f0aaa7bfe8dda9ce0afa367e793fb4e0b5767b2af1039d3631dd9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c0b6a70fccf3255a894d8a99f91f3bfde639e7925b2c0ceafdfaf2de658c8b909f24a8845cfad1c5034ebab7b20d67faf1affde5c2cc4def39ffb0058cafda5
|
7
|
+
data.tar.gz: ef61f6c3463e7a8c7c650006c41a67bb2374e48ecf8817e9d7fdb9e512c31abafaf11bc6825d96b53b9d9823ac262495c237bf0ca5d884fd381b2925ca3dd6e7
|
data/.travis.yml
CHANGED
data/History.md
CHANGED
data/LICENSE.txt
CHANGED
@@ -21,7 +21,7 @@ module CukeCataloger
|
|
21
21
|
end
|
22
22
|
|
23
23
|
# Adds id tags based on *tag_prefix* to the tests found in *feature_directory*
|
24
|
-
def tag_tests(feature_directory, tag_prefix, explicit_indexes = {}, tag_rows = true, id_column_name = 'test_case_id')
|
24
|
+
def tag_tests(feature_directory, tag_prefix = '@test_case_', explicit_indexes = {}, tag_rows = true, id_column_name = 'test_case_id')
|
25
25
|
warn("This script will potentially rewrite all of your feature files. Please be patient and remember to tip your source control system.")
|
26
26
|
|
27
27
|
@known_id_tags = {}
|
@@ -46,7 +46,7 @@ module CukeCataloger
|
|
46
46
|
end
|
47
47
|
|
48
48
|
# Finds existing id tags and their associated tests in *feature_directory* based on *tag_prefix*
|
49
|
-
def scan_for_tagged_tests(feature_directory, tag_prefix, id_column_name = 'test_case_id')
|
49
|
+
def scan_for_tagged_tests(feature_directory, tag_prefix = '@test_case_', id_column_name = 'test_case_id')
|
50
50
|
@results = []
|
51
51
|
@known_id_tags = {}
|
52
52
|
|
@@ -71,7 +71,7 @@ module CukeCataloger
|
|
71
71
|
end
|
72
72
|
|
73
73
|
# Checks for cataloging problems in *feature_directory* based on *tag_prefix*
|
74
|
-
def validate_test_ids(feature_directory, tag_prefix, tag_rows = true, id_column_name = 'test_case_id')
|
74
|
+
def validate_test_ids(feature_directory, tag_prefix = '@test_case_', tag_rows = true, id_column_name = 'test_case_id')
|
75
75
|
@results = []
|
76
76
|
@known_id_tags = {}
|
77
77
|
|
@@ -85,7 +85,7 @@ module CukeCataloger
|
|
85
85
|
end
|
86
86
|
|
87
87
|
# Finds existing id tags in *feature_directory* based on *tag_prefix*
|
88
|
-
def determine_known_ids(feature_directory, tag_prefix, id_column_name = 'test_case_id')
|
88
|
+
def determine_known_ids(feature_directory, tag_prefix = '@test_case_', id_column_name = 'test_case_id')
|
89
89
|
known_ids = []
|
90
90
|
|
91
91
|
found_tagged_objects = scan_for_tagged_tests(feature_directory, tag_prefix, id_column_name).collect { |result| result[:object] }
|
@@ -8,9 +8,9 @@ Feature: Tag indexing
|
|
8
8
|
|
9
9
|
An analogous principle is used for outlines.
|
10
10
|
|
11
|
+
*Note*: When indexing, a tag prefix of '@test_case_' and a column id of 'test_case_id' will be used unless different
|
12
|
+
values are specified
|
11
13
|
|
12
|
-
Background:
|
13
|
-
* a tag prefix of "@test_case_"
|
14
14
|
|
15
15
|
Scenario: Used indexes can be determined
|
16
16
|
Given the following feature file "file1.feature":
|
@@ -40,7 +40,7 @@ Feature: Tag indexing
|
|
40
40
|
| param 1 |
|
41
41
|
| value 1 |
|
42
42
|
|
43
|
-
#Missing the parent tag but the sub-tags still count
|
43
|
+
# Missing the parent tag but the sub-tags still count
|
44
44
|
Scenario Outline:
|
45
45
|
* a step
|
46
46
|
Examples: with rows
|
@@ -11,7 +11,6 @@ Feature: Scan results return useful information
|
|
11
11
|
Scenario:
|
12
12
|
* a step
|
13
13
|
"""
|
14
|
-
And a tag prefix of "@test_case_"
|
15
14
|
When the files are scanned
|
16
15
|
Then the payload is a model object
|
17
16
|
|
@@ -27,6 +26,5 @@ Feature: Scan results return useful information
|
|
27
26
|
| test_case_id | param 1 |
|
28
27
|
| 7-1 | value 1 |
|
29
28
|
"""
|
30
|
-
And a tag prefix of "@test_case_"
|
31
29
|
When the files are scanned
|
32
30
|
Then the payload has a test and a test row
|
@@ -3,8 +3,8 @@ Feature: Tagging test cases for uniqueness
|
|
3
3
|
Tests are tagged based on a simple <prefix><unique_id> pattern. Every test gets a tag at the test level and, in the case outlines, a sub-id for each of its example rows. Any test which has already been given an id tag or other id information will not have that information modified by the tagging process.
|
4
4
|
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
*Note*: When tagging, a tag prefix of '@test_case_' and a column id of 'test_case_id' will be used unless different
|
7
|
+
values are specified
|
8
8
|
|
9
9
|
|
10
10
|
Scenario: Tagging tests that don't have id tags
|
@@ -5,6 +5,9 @@ Feature: Checking existing tags for correctness
|
|
5
5
|
Therefore, the tool provides such a means.
|
6
6
|
|
7
7
|
|
8
|
+
*Note*: When validating, a tag prefix of '@test_case_' and a column id of 'test_case_id' will be used unless different
|
9
|
+
values are specified
|
10
|
+
|
8
11
|
Scenario: Detection of missing test ids when not present
|
9
12
|
Given the following feature file "has_untagged_tests.feature":
|
10
13
|
"""
|
@@ -13,7 +16,6 @@ Feature: Checking existing tags for correctness
|
|
13
16
|
Scenario:
|
14
17
|
* a step
|
15
18
|
"""
|
16
|
-
And a tag prefix of "@test_case_"
|
17
19
|
When the ids in the test suite are validated
|
18
20
|
Then the following tests are found to be missing ids:
|
19
21
|
| path/to/has_untagged_tests.feature:3 |
|
@@ -27,7 +29,6 @@ Feature: Checking existing tags for correctness
|
|
27
29
|
Scenario:
|
28
30
|
* a step
|
29
31
|
"""
|
30
|
-
And a tag prefix of "@test_case_"
|
31
32
|
When the ids in the test suite are validated
|
32
33
|
Then no tests are found to be missing ids
|
33
34
|
|
@@ -44,7 +45,6 @@ Feature: Checking existing tags for correctness
|
|
44
45
|
| | 123 |
|
45
46
|
| bad_id | 456 |
|
46
47
|
"""
|
47
|
-
And a tag prefix of "@test_case_"
|
48
48
|
When the ids in the test suite are validated
|
49
49
|
Then the following tests rows are found to be missing sub ids:
|
50
50
|
| path/to/has_untagged_rows.feature:8 |
|
@@ -62,7 +62,6 @@ Feature: Checking existing tags for correctness
|
|
62
62
|
| 4-1 | 123 |
|
63
63
|
| 4-2 | 456 |
|
64
64
|
"""
|
65
|
-
And a tag prefix of "@test_case_"
|
66
65
|
When the ids in the test suite are validated
|
67
66
|
Then no tests rows are found to be missing sub ids
|
68
67
|
|
@@ -78,7 +77,6 @@ Feature: Checking existing tags for correctness
|
|
78
77
|
| param |
|
79
78
|
| 123 |
|
80
79
|
"""
|
81
|
-
And a tag prefix of "@test_case_"
|
82
80
|
When the ids in the test suite are validated
|
83
81
|
Then the following tests examples are found to be missing a parameter for sub ids:
|
84
82
|
| path/to/has_missing_id_param.feature:6 |
|
@@ -95,7 +93,6 @@ Feature: Checking existing tags for correctness
|
|
95
93
|
| test_case_id | param |
|
96
94
|
| 4-1 | 123 |
|
97
95
|
"""
|
98
|
-
And a tag prefix of "@test_case_"
|
99
96
|
When the ids in the test suite are validated
|
100
97
|
Then no test examples are found to be missing id parameters
|
101
98
|
|
@@ -112,7 +109,6 @@ Feature: Checking existing tags for correctness
|
|
112
109
|
Scenario:
|
113
110
|
* a step
|
114
111
|
"""
|
115
|
-
And a tag prefix of "@test_case_"
|
116
112
|
When the ids in the test suite are validated
|
117
113
|
Then the following tests are found to have a duplicated id:
|
118
114
|
| path/to/has_duplicated_tag.feature:4 |
|
@@ -131,7 +127,6 @@ Feature: Checking existing tags for correctness
|
|
131
127
|
Scenario:
|
132
128
|
* a step
|
133
129
|
"""
|
134
|
-
And a tag prefix of "@test_case_"
|
135
130
|
When the ids in the test suite are validated
|
136
131
|
Then no tests are found to have duplicated ids
|
137
132
|
|
@@ -152,7 +147,6 @@ Feature: Checking existing tags for correctness
|
|
152
147
|
| 2-1 | 123 |
|
153
148
|
| 2-1 | 123 |
|
154
149
|
"""
|
155
|
-
And a tag prefix of "@test_case_"
|
156
150
|
When the ids in the test suite are validated
|
157
151
|
Then the following tests example rows are found to have duplicated sub ids:
|
158
152
|
| path/to/has_duplicated_id.feature:8 |
|
@@ -176,7 +170,6 @@ Feature: Checking existing tags for correctness
|
|
176
170
|
| 2-3 | 123 |
|
177
171
|
| 2-4 | 123 |
|
178
172
|
"""
|
179
|
-
And a tag prefix of "@test_case_"
|
180
173
|
When the ids in the test suite are validated
|
181
174
|
Then no test example rows are found to have duplicated sub ids
|
182
175
|
|
@@ -213,7 +206,6 @@ Feature: Checking existing tags for correctness
|
|
213
206
|
| test_case_id | param |
|
214
207
|
| | 123 |
|
215
208
|
"""
|
216
|
-
And a tag prefix of "@test_case_"
|
217
209
|
When the ids in the test suite are validated
|
218
210
|
Then the following tests example rows are found to have mismatched sub ids:
|
219
211
|
| path/to/has_mismatched_id.feature:8 |
|
@@ -231,7 +223,6 @@ Feature: Checking existing tags for correctness
|
|
231
223
|
| test_case_id | param |
|
232
224
|
| 4-1 | 123 |
|
233
225
|
"""
|
234
|
-
And a tag prefix of "@test_case_"
|
235
226
|
When the ids in the test suite are validated
|
236
227
|
Then no test example rows are found to have mismatched ids
|
237
228
|
|
@@ -245,7 +236,6 @@ Feature: Checking existing tags for correctness
|
|
245
236
|
Scenario:
|
246
237
|
* a step
|
247
238
|
"""
|
248
|
-
And a tag prefix of "@test_case_"
|
249
239
|
When the ids in the test suite are validated
|
250
240
|
Then the following tests are found to have multiple test ids:
|
251
241
|
| path/to/has_multiple_test_ids.feature:5 |
|
@@ -259,7 +249,6 @@ Feature: Checking existing tags for correctness
|
|
259
249
|
Scenario:
|
260
250
|
* a step
|
261
251
|
"""
|
262
|
-
And a tag prefix of "@test_case_"
|
263
252
|
When the ids in the test suite are validated
|
264
253
|
Then no tests are found to have multiple test ids
|
265
254
|
|
@@ -277,7 +266,6 @@ Feature: Checking existing tags for correctness
|
|
277
266
|
| | |
|
278
267
|
| trash | 123 |
|
279
268
|
"""
|
280
|
-
And a tag prefix of "@test_case_"
|
281
269
|
When the ids in the test suite are validated
|
282
270
|
Then the following tests example rows are found to have malformed sub ids:
|
283
271
|
| path/to/has_mismatched_id.feature:8 |
|
@@ -295,7 +283,6 @@ Feature: Checking existing tags for correctness
|
|
295
283
|
| test_case_id | param |
|
296
284
|
| 4-1 | 123 |
|
297
285
|
"""
|
298
|
-
And a tag prefix of "@test_case_"
|
299
286
|
When the ids in the test suite are validated
|
300
287
|
Then no test example rows are found to have malformed sub ids
|
301
288
|
|
@@ -313,7 +300,6 @@ Feature: Checking existing tags for correctness
|
|
313
300
|
Scenario:
|
314
301
|
* a step
|
315
302
|
"""
|
316
|
-
And a tag prefix of "@test_case_"
|
317
303
|
When the ids in the test suite are validated
|
318
304
|
Then the following feature is found to have a test case tag:
|
319
305
|
| path/to/has_a_feature_level_test_tag.feature:2 |
|
@@ -327,7 +313,6 @@ Feature: Checking existing tags for correctness
|
|
327
313
|
Scenario:
|
328
314
|
* a step
|
329
315
|
"""
|
330
|
-
And a tag prefix of "@test_case_"
|
331
316
|
When the ids in the test suite are validated
|
332
317
|
Then no feature is found to have a test case tag
|
333
318
|
|
@@ -340,7 +325,6 @@ Feature: Checking existing tags for correctness
|
|
340
325
|
Scenario:
|
341
326
|
* a step
|
342
327
|
"""
|
343
|
-
And a tag prefix of "@test_case_"
|
344
328
|
When the ids in the test suite are validated
|
345
329
|
Then no tests are found to be missing ids
|
346
330
|
|
@@ -361,7 +345,6 @@ Feature: Checking existing tags for correctness
|
|
361
345
|
Examples:
|
362
346
|
| param |
|
363
347
|
"""
|
364
|
-
And a tag prefix of "@test_case_"
|
365
348
|
When the ids in the test suite are validated
|
366
349
|
Then the following tests are found to be missing ids:
|
367
350
|
| path/to/has_untagged_tests.feature:3 |
|
@@ -1,5 +1,6 @@
|
|
1
1
|
When(/^the files? (?:is|are) processed$/) do
|
2
2
|
@start_index ||= {}
|
3
|
+
@tag_prefix ||= '@test_case_'
|
3
4
|
@directory = CukeModeler::Directory.new(@test_directory)
|
4
5
|
|
5
6
|
tagger = CukeCataloger::UniqueTestCaseTagger.new
|
@@ -11,7 +12,10 @@ end
|
|
11
12
|
When(/^the ids in the test suite are validated$/) do
|
12
13
|
@directory = CukeModeler::Directory.new(@test_directory)
|
13
14
|
|
14
|
-
|
15
|
+
args = [@directory.path]
|
16
|
+
args << @tag_prefix if @tag_prefix
|
17
|
+
|
18
|
+
@test_results = CukeCataloger::UniqueTestCaseTagger.new.validate_test_ids(*args)
|
15
19
|
end
|
16
20
|
|
17
21
|
When(/^the files are scanned$/) do
|
@@ -24,7 +28,9 @@ end
|
|
24
28
|
When(/^the existing ids are determined$/) do
|
25
29
|
@directory = CukeModeler::Directory.new(@test_directory)
|
26
30
|
|
27
|
-
|
31
|
+
args = [@directory.path]
|
32
|
+
args << @tag_prefix if @tag_prefix
|
33
|
+
@ids_found = CukeCataloger::UniqueTestCaseTagger.new.determine_known_ids(*args)
|
28
34
|
end
|
29
35
|
|
30
36
|
When(/^the following command is executed:$/) do |command|
|
@@ -139,7 +139,7 @@ Then(/^the resulting first file is:$/) do |expected_text|
|
|
139
139
|
begin
|
140
140
|
expect(actual_text).to eq(expected_text)
|
141
141
|
rescue RSpec::Expectations::ExpectationNotMetError => e
|
142
|
-
if RUBY_PLATFORM =~ /linux/
|
142
|
+
if RUBY_PLATFORM =~ /(?:linux|java)/
|
143
143
|
expected_text.sub!('test_case_1', 'test_case_2')
|
144
144
|
expect(actual_text).to eq(expected_text)
|
145
145
|
@switched = true
|
@@ -16,7 +16,7 @@ Before do
|
|
16
16
|
begin
|
17
17
|
@root_test_directory = CukeCataloger::FileHelper.create_directory
|
18
18
|
rescue => e
|
19
|
-
puts "Error caught in
|
19
|
+
puts "Error caught in Before hook!"
|
20
20
|
puts "Type: #{e.class}"
|
21
21
|
puts "Message: #{e.message}"
|
22
22
|
end
|
@@ -26,7 +26,7 @@ After do
|
|
26
26
|
begin
|
27
27
|
`git checkout HEAD -- #{FIXTURE_DIRECTORY}`
|
28
28
|
rescue => e
|
29
|
-
puts "Error caught in
|
29
|
+
puts "Error caught in After hook!"
|
30
30
|
puts "Type: #{e.class}"
|
31
31
|
puts "Message: #{e.message}"
|
32
32
|
end
|
data/testing/file_helper.rb
CHANGED
@@ -20,12 +20,69 @@ describe 'UniqueTestCaseTagger, Integration' do
|
|
20
20
|
# Using ids that are not used for memory allocation by Ruby since they are used for predefined constants.
|
21
21
|
@tagger.instance_variable_set(:@known_id_tags, {0 => '123', 2 => '456'})
|
22
22
|
|
23
|
-
|
23
|
+
path = CukeCataloger::FileHelper.create_directory
|
24
|
+
@tagger.tag_tests(path, '')
|
24
25
|
|
25
26
|
expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(0)
|
26
27
|
expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(1)
|
27
28
|
end
|
28
29
|
|
30
|
+
it 'uses a default tag prefix' do
|
31
|
+
test_directory = CukeCataloger::FileHelper.create_directory
|
32
|
+
|
33
|
+
starting_text = 'Feature:
|
34
|
+
|
35
|
+
Scenario:
|
36
|
+
* a step'
|
37
|
+
|
38
|
+
test_file = CukeCataloger::FileHelper.create_feature_file(:directory => test_directory, :text => starting_text)
|
39
|
+
|
40
|
+
|
41
|
+
@tagger.tag_tests(test_directory)
|
42
|
+
|
43
|
+
expected_text = 'Feature:
|
44
|
+
|
45
|
+
@test_case_1
|
46
|
+
Scenario:
|
47
|
+
* a step'
|
48
|
+
|
49
|
+
tagged_text = File.read(test_file)
|
50
|
+
|
51
|
+
|
52
|
+
expect(tagged_text).to eq(expected_text)
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'uses a default id column name' do
|
56
|
+
test_directory = CukeCataloger::FileHelper.create_directory
|
57
|
+
|
58
|
+
starting_text = 'Feature:
|
59
|
+
|
60
|
+
Scenario Outline:
|
61
|
+
* a step
|
62
|
+
Examples:
|
63
|
+
| param |
|
64
|
+
| value |'
|
65
|
+
|
66
|
+
test_file = CukeCataloger::FileHelper.create_feature_file(:directory => test_directory, :text => starting_text)
|
67
|
+
|
68
|
+
|
69
|
+
@tagger.tag_tests(test_directory)
|
70
|
+
|
71
|
+
expected_text = 'Feature:
|
72
|
+
|
73
|
+
@test_case_1
|
74
|
+
Scenario Outline:
|
75
|
+
* a step
|
76
|
+
Examples:
|
77
|
+
| param | test_case_id |
|
78
|
+
| value | 1-1 |'
|
79
|
+
|
80
|
+
tagged_text = File.read(test_file)
|
81
|
+
|
82
|
+
|
83
|
+
expect(tagged_text).to eq(expected_text)
|
84
|
+
end
|
85
|
+
|
29
86
|
end
|
30
87
|
|
31
88
|
describe 'data validation' do
|
@@ -39,12 +96,49 @@ describe 'UniqueTestCaseTagger, Integration' do
|
|
39
96
|
# Using ids that are not used for memory allocation by Ruby since they are used for predefined constants.
|
40
97
|
@tagger.instance_variable_set(:@known_id_tags, {0 => '123', 2 => '456'})
|
41
98
|
|
42
|
-
|
99
|
+
path = CukeCataloger::FileHelper.create_directory
|
100
|
+
@tagger.validate_test_ids(path, '')
|
43
101
|
|
44
102
|
expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(0)
|
45
103
|
expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(1)
|
46
104
|
end
|
47
105
|
|
106
|
+
it 'uses a default tag prefix' do
|
107
|
+
test_directory = CukeCataloger::FileHelper.create_directory
|
108
|
+
|
109
|
+
gherkin_text = 'Feature:
|
110
|
+
|
111
|
+
@test_case_1
|
112
|
+
Scenario:
|
113
|
+
* a step'
|
114
|
+
|
115
|
+
CukeCataloger::FileHelper.create_feature_file(:directory => test_directory, :text => gherkin_text)
|
116
|
+
|
117
|
+
|
118
|
+
results = @tagger.validate_test_ids(test_directory)
|
119
|
+
|
120
|
+
expect(results).to be_empty
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'uses a default id column name' do
|
124
|
+
test_directory = CukeCataloger::FileHelper.create_directory
|
125
|
+
|
126
|
+
gherkin_text = 'Feature:
|
127
|
+
|
128
|
+
@test_case_1
|
129
|
+
Scenario Outline:
|
130
|
+
* a step
|
131
|
+
Examples:
|
132
|
+
| param | test_case_id |
|
133
|
+
| value 1 | 1-1 |'
|
134
|
+
|
135
|
+
CukeCataloger::FileHelper.create_feature_file(:directory => test_directory, :text => gherkin_text)
|
136
|
+
|
137
|
+
|
138
|
+
results = @tagger.validate_test_ids(test_directory)
|
139
|
+
|
140
|
+
expect(results).to be_empty
|
141
|
+
end
|
48
142
|
end
|
49
143
|
|
50
144
|
describe 'test scanning' do
|
@@ -58,11 +152,52 @@ describe 'UniqueTestCaseTagger, Integration' do
|
|
58
152
|
# Using ids that are not used for memory allocation by Ruby since they are used for predefined constants.
|
59
153
|
@tagger.instance_variable_set(:@known_id_tags, {0 => '123', 2 => '456'})
|
60
154
|
|
61
|
-
|
155
|
+
path = CukeCataloger::FileHelper.create_directory
|
156
|
+
@tagger.scan_for_tagged_tests(path, '')
|
62
157
|
|
63
158
|
expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(0)
|
64
159
|
expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(1)
|
65
160
|
end
|
161
|
+
|
162
|
+
it 'uses a default tag prefix' do
|
163
|
+
test_directory = CukeCataloger::FileHelper.create_directory
|
164
|
+
|
165
|
+
gherkin_text = 'Feature:
|
166
|
+
|
167
|
+
@test_case_1
|
168
|
+
Scenario:
|
169
|
+
* a step'
|
170
|
+
|
171
|
+
test_file = CukeCataloger::FileHelper.create_feature_file(:directory => test_directory, :text => gherkin_text)
|
172
|
+
|
173
|
+
|
174
|
+
results = @tagger.scan_for_tagged_tests(test_directory)
|
175
|
+
|
176
|
+
|
177
|
+
expect(results.collect { |result| result[:test] }).to eq(["#{test_file}:4"])
|
178
|
+
end
|
179
|
+
|
180
|
+
it 'uses a default id column name' do
|
181
|
+
test_directory = CukeCataloger::FileHelper.create_directory
|
182
|
+
|
183
|
+
gherkin_text = 'Feature:
|
184
|
+
|
185
|
+
@test_case_1
|
186
|
+
Scenario Outline:
|
187
|
+
* a step
|
188
|
+
Examples:
|
189
|
+
| param | test_case_id |
|
190
|
+
| value 1 | 1-1 |'
|
191
|
+
|
192
|
+
test_file = CukeCataloger::FileHelper.create_feature_file(:directory => test_directory, :text => gherkin_text)
|
193
|
+
|
194
|
+
|
195
|
+
results = @tagger.scan_for_tagged_tests(test_directory)
|
196
|
+
|
197
|
+
expect(results.collect { |result| result[:test] }).to eq(["#{test_file}:4",
|
198
|
+
"#{test_file}:8"])
|
199
|
+
end
|
200
|
+
|
66
201
|
end
|
67
202
|
|
68
203
|
describe 'tag indexing' do
|
@@ -76,7 +211,8 @@ describe 'UniqueTestCaseTagger, Integration' do
|
|
76
211
|
# Using ids that are not used for memory allocation by Ruby since they are used for predefined constants.
|
77
212
|
@tagger.instance_variable_set(:@known_id_tags, {0 => '123', 2 => '456'})
|
78
213
|
|
79
|
-
|
214
|
+
path = CukeCataloger::FileHelper.create_directory
|
215
|
+
@tagger.determine_known_ids(path, '')
|
80
216
|
|
81
217
|
expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(0)
|
82
218
|
expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(1)
|
@@ -115,6 +251,45 @@ describe 'UniqueTestCaseTagger, Integration' do
|
|
115
251
|
expect(result).to_not include('2-1', '2-2', '2-3')
|
116
252
|
end
|
117
253
|
|
254
|
+
it 'uses a default tag prefix' do
|
255
|
+
test_directory = CukeCataloger::FileHelper.create_directory
|
256
|
+
|
257
|
+
text = 'Feature:
|
258
|
+
|
259
|
+
@test_case_1
|
260
|
+
Scenario:
|
261
|
+
* a step'
|
262
|
+
|
263
|
+
CukeCataloger::FileHelper.create_feature_file(:directory => test_directory, :text => text)
|
264
|
+
|
265
|
+
|
266
|
+
result = @tagger.determine_known_ids(test_directory)
|
267
|
+
|
268
|
+
|
269
|
+
expect(result).to eq(['1'])
|
270
|
+
end
|
271
|
+
|
272
|
+
it 'uses a default id column name' do
|
273
|
+
test_directory = CukeCataloger::FileHelper.create_directory
|
274
|
+
|
275
|
+
text = 'Feature:
|
276
|
+
|
277
|
+
@test_case_1
|
278
|
+
Scenario Outline:
|
279
|
+
* a step
|
280
|
+
Examples:
|
281
|
+
| param | test_case_id |
|
282
|
+
| value | 1-1 |'
|
283
|
+
|
284
|
+
CukeCataloger::FileHelper.create_feature_file(:directory => test_directory, :text => text)
|
285
|
+
|
286
|
+
|
287
|
+
result = @tagger.determine_known_ids(test_directory)
|
288
|
+
|
289
|
+
|
290
|
+
expect(result).to eq(['1', '1-1'])
|
291
|
+
end
|
292
|
+
|
118
293
|
end
|
119
294
|
|
120
295
|
end
|
@@ -14,8 +14,8 @@ describe 'UniqueTestCaseTagger, Unit' do
|
|
14
14
|
expect(@tagger).to respond_to(:tag_tests)
|
15
15
|
end
|
16
16
|
|
17
|
-
it 'takes a directory, tag prefix, and an optional start index' do
|
18
|
-
expect(@tagger.method(:tag_tests).arity).to eq(-
|
17
|
+
it 'takes a directory, optional tag prefix, and an optional start index' do
|
18
|
+
expect(@tagger.method(:tag_tests).arity).to eq(-2)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
@@ -24,12 +24,13 @@ describe 'UniqueTestCaseTagger, Unit' do
|
|
24
24
|
expect(@tagger).to respond_to(:validate_test_ids)
|
25
25
|
end
|
26
26
|
|
27
|
-
it 'validates based on a directory, tag prefix, and optional row tagging flag' do
|
28
|
-
expect(@tagger.method(:validate_test_ids).arity).to eq(-
|
27
|
+
it 'validates based on a directory, optional tag prefix, and optional row tagging flag' do
|
28
|
+
expect(@tagger.method(:validate_test_ids).arity).to eq(-2)
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'returns validation results' do
|
32
|
-
|
32
|
+
path = CukeCataloger::FileHelper.create_directory
|
33
|
+
results = @tagger.validate_test_ids(path, '')
|
33
34
|
|
34
35
|
expect(results).to be_a_kind_of(Array)
|
35
36
|
end
|
@@ -40,12 +41,13 @@ describe 'UniqueTestCaseTagger, Unit' do
|
|
40
41
|
expect(@tagger).to respond_to(:scan_for_tagged_tests)
|
41
42
|
end
|
42
43
|
|
43
|
-
it 'validates based on a directory, tag prefix, and optional column name' do
|
44
|
-
expect(@tagger.method(:scan_for_tagged_tests).arity).to eq(-
|
44
|
+
it 'validates based on a directory, optional tag prefix, and optional column name' do
|
45
|
+
expect(@tagger.method(:scan_for_tagged_tests).arity).to eq(-2)
|
45
46
|
end
|
46
47
|
|
47
48
|
it 'returns scanning results' do
|
48
|
-
|
49
|
+
path = CukeCataloger::FileHelper.create_directory
|
50
|
+
results = @tagger.scan_for_tagged_tests(path, '')
|
49
51
|
|
50
52
|
expect(results).to be_a_kind_of(Array)
|
51
53
|
end
|
@@ -56,8 +58,8 @@ describe 'UniqueTestCaseTagger, Unit' do
|
|
56
58
|
expect(@tagger).to respond_to(:determine_known_ids)
|
57
59
|
end
|
58
60
|
|
59
|
-
it 'determines used indexes based on a directory, tag prefix, and optional column name' do
|
60
|
-
expect(@tagger.method(:determine_known_ids).arity).to eq(-
|
61
|
+
it 'determines used indexes based on a directory, optional tag prefix, and optional column name' do
|
62
|
+
expect(@tagger.method(:determine_known_ids).arity).to eq(-2)
|
61
63
|
end
|
62
64
|
end
|
63
65
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cuke_cataloger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Kessler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cuke_modeler
|
@@ -233,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
233
233
|
version: '0'
|
234
234
|
requirements: []
|
235
235
|
rubyforge_project:
|
236
|
-
rubygems_version: 2.
|
236
|
+
rubygems_version: 2.7.6
|
237
237
|
signing_key:
|
238
238
|
specification_version: 4
|
239
239
|
summary: A tool to give every Cucumber test a unique id
|