cuke_cataloger 1.6.0 → 2.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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +27 -3
  3. data/LICENSE.txt +1 -1
  4. data/README.md +11 -11
  5. data/cuke_cataloger.gemspec +33 -13
  6. data/exe/cuke_cataloger +53 -0
  7. data/lib/cuke_cataloger/formatters/text_report_formatter.rb +7 -2
  8. data/lib/cuke_cataloger/rake_tasks.rb +9 -4
  9. data/lib/cuke_cataloger/unique_test_case_tagger.rb +152 -147
  10. data/lib/cuke_cataloger/version.rb +1 -1
  11. data/lib/cuke_cataloger.rb +0 -1
  12. metadata +90 -51
  13. data/.cucumberproignore +0 -1
  14. data/.gitignore +0 -18
  15. data/.simplecov +0 -7
  16. data/.travis.yml +0 -67
  17. data/Gemfile +0 -41
  18. data/Rakefile +0 -70
  19. data/appveyor.yml +0 -188
  20. data/bin/cuke_cataloger +0 -49
  21. data/testing/cucumber/step_definitions/action_steps.rb +0 -64
  22. data/testing/cucumber/step_definitions/setup_steps.rb +0 -76
  23. data/testing/cucumber/step_definitions/verification_steps.rb +0 -211
  24. data/testing/cucumber/support/env.rb +0 -40
  25. data/testing/file_helper.rb +0 -42
  26. data/testing/fixtures/Rakefile +0 -19
  27. data/testing/fixtures/tests/foo.feature +0 -11
  28. data/testing/gemfiles/cql1.gemfile +0 -40
  29. data/testing/gemfiles/cuke_modeler0.gemfile +0 -35
  30. data/testing/gemfiles/cuke_modeler1.gemfile +0 -35
  31. data/testing/gemfiles/cuke_modeler2.gemfile +0 -35
  32. data/testing/gemfiles/cuke_modeler3.gemfile +0 -9
  33. data/testing/gemfiles/rake10.gemfile +0 -38
  34. data/testing/gemfiles/rake11.gemfile +0 -30
  35. data/testing/gemfiles/rake12.gemfile +0 -35
  36. data/testing/gemfiles/rake13.gemfile +0 -8
  37. data/testing/gemfiles/thor0.gemfile +0 -39
  38. data/testing/gemfiles/thor1.gemfile +0 -11
  39. data/testing/rspec/spec/cuke_cataloger_spec.rb +0 -22
  40. data/testing/rspec/spec/spec_helper.rb +0 -23
  41. data/testing/rspec/spec/unique_test_case_tagger_integration_spec.rb +0 -295
  42. data/testing/rspec/spec/unique_test_case_tagger_unit_spec.rb +0 -81
  43. data/todo.txt +0 -5
@@ -1,38 +0,0 @@
1
- # Older Rubies on Windows cannot securely connect to RubyGems anymore (https://github.com/rubygems/rubygems/issues/2330)
2
- if (RbConfig::CONFIG['host_os'] =~ /mswin|msys|mingw32/) && (RUBY_VERSION =~ /^1\./)
3
- source 'http://rubygems.org'
4
- else
5
- source 'https://rubygems.org'
6
- end
7
-
8
- gemspec :path => "../../"
9
-
10
- # The Coveralls gem can't handle more recent versions of the SimpleCov gem
11
- gem 'simplecov', '<= 0.16.1'
12
-
13
- # cuke_cataloger can play with pretty much any version of these but they all play differently with Ruby
14
- if RUBY_VERSION =~ /^1\.8/
15
- gem 'cucumber', '< 1.3.0'
16
- gem 'gherkin', '< 2.12.0'
17
- gem 'mime-types', '< 2.0' # The 'mime-types' gem requires Ruby 1.9.x on/after this version
18
- gem 'rainbow', '< 2.0' # Ruby 1.8.x support dropped after this version
19
- elsif RUBY_VERSION =~ /^1\./
20
- gem 'cucumber', '< 2.0.0'
21
- gem 'mime-types', '< 3.0.0' # The 'mime-types' gem requires Ruby 2.x on/after this version
22
- gem 'rainbow', '< 3.0' # The 'rainbow' gem requires Ruby 2.x on/after this version
23
- else
24
- # Have to use this version of Cucumber in order to avoid namespace problems introduced by the `cucumber-gherkin` gem
25
- gem 'cucumber', '2.2.0'
26
- end
27
-
28
- if RUBY_VERSION =~ /^1\./
29
- gem 'cuke_modeler', '< 3.0' # The 'cuke_modeler' gem requires Ruby 2.x on/after this version
30
- gem 'ffi', '< 1.9.15' # The 'ffi' gem requires Ruby 2.x on/after this version
31
- gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version
32
- gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version
33
- gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version
34
- gem 'thor', '< 1.0' # The 'thor' gem requires Ruby 2.x on/after this version
35
- end
36
-
37
- # The version of Rake being tested
38
- gem 'rake', '~> 10.0'
@@ -1,30 +0,0 @@
1
- # Older Rubies on Windows cannot securely connect to RubyGems anymore (https://github.com/rubygems/rubygems/issues/2330)
2
- if (RbConfig::CONFIG['host_os'] =~ /mswin|msys|mingw32/) && (RUBY_VERSION =~ /^1\./)
3
- source 'http://rubygems.org'
4
- else
5
- source 'https://rubygems.org'
6
- end
7
-
8
- gemspec :path => "../../"
9
-
10
-
11
- # The version of Rake being tested
12
- gem 'rake', '~> 11.0'
13
-
14
- if RUBY_VERSION =~ /^1\./
15
- gem 'cucumber', '< 2.0.0'
16
- gem 'cuke_modeler', '< 3.0' # The 'cuke_modeler' gem requires Ruby 2.x on/after this version
17
- gem 'ffi', '< 1.9.15' # The 'ffi' gem requires Ruby 2.x on/after this version
18
- gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version
19
- gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version
20
- gem 'mime-types', '< 3.0.0' # The 'mime-types' gem requires Ruby 2.x on/after this version
21
- gem 'rainbow', '< 3.0' # The 'rainbow' gem requires Ruby 2.x on/after this version
22
- gem 'rest-client', '< 2.0' # The 'rainbow' gem requires Ruby 2.x on/after this version
23
- gem 'simplecov-html', '< 0.11.0' # The 'simplecov-html' gem requires Ruby 2.x on/after this version
24
- gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version
25
- gem 'unf_ext', '< 0.0.7.3' # The 'unf_ext' gem requires Ruby 2.x on/after this version
26
- gem 'thor', '< 1.0' # The 'thor' gem requires Ruby 2.x on/after this version
27
- else
28
- # Have to use this version of Cucumber in order to avoid namespace problems introduced by the `cucumber-gherkin` gem
29
- gem 'cucumber', '2.2.0'
30
- end
@@ -1,35 +0,0 @@
1
- # Older Rubies on Windows cannot securely connect to RubyGems anymore (https://github.com/rubygems/rubygems/issues/2330)
2
- if (RbConfig::CONFIG['host_os'] =~ /mswin|msys|mingw32/) && (RUBY_VERSION =~ /^1\./)
3
- source 'http://rubygems.org'
4
- else
5
- source 'https://rubygems.org'
6
- end
7
-
8
- gemspec :path => "../../"
9
-
10
-
11
- # Rake 12.x does not work with Ruby 1.8.x
12
- if RUBY_VERSION =~ /^1\./
13
- gem 'cucumber', '< 2.0.0'
14
- gem 'cuke_modeler', '< 3.0' # The 'cuke_modeler' gem requires Ruby 2.x on/after this version
15
- gem 'ffi', '< 1.9.15' # The 'ffi' gem requires Ruby 2.x on/after this version
16
- gem 'rainbow', '< 3.0' # The 'rainbow' gem requires Ruby 2.x on/after this version
17
- gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version
18
- gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version
19
- gem 'mime-types', '< 3.0.0' # The 'mime-types' gem requires Ruby 2.x on/after this version
20
- gem 'rest-client', '< 2.0' # The 'rainbow' gem requires Ruby 2.x on/after this version
21
- gem 'simplecov-html', '< 0.11.0' # The 'simplecov-html' gem requires Ruby 2.x on/after this version
22
- gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version
23
- gem 'unf_ext', '< 0.0.7.3' # The 'unf_ext' gem requires Ruby 2.x on/after this version
24
- gem 'thor', '< 1.0' # The 'thor' gem requires Ruby 2.x on/after this version
25
- else
26
- # Have to use this version of Cucumber in order to avoid namespace problems introduced by the `cucumber-gherkin` gem
27
- gem 'cucumber', '2.2.0'
28
- end
29
-
30
- # The version of Rake being tested
31
- if RUBY_VERSION =~ /^1\./
32
- gem 'rake', '< 12.3.0' # The 'rake' gem requires Ruby 2.x on/after this version
33
- else
34
- gem 'rake', '~> 12.0'
35
- end
@@ -1,8 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec :path => "../../"
3
-
4
- # The version of Rake being tested
5
- gem 'rake', '~> 13.0'
6
-
7
- # Have to use this version of Cucumber in order to avoid namespace problems introduced by the `cucumber-gherkin` gem
8
- gem 'cucumber', '2.2.0'
@@ -1,39 +0,0 @@
1
- # Older Rubies on Windows cannot securely connect to RubyGems anymore (https://github.com/rubygems/rubygems/issues/2330)
2
- if (RbConfig::CONFIG['host_os'] =~ /mswin|msys|mingw32/) && (RUBY_VERSION =~ /^1\./)
3
- source 'http://rubygems.org'
4
- else
5
- source 'https://rubygems.org'
6
- end
7
-
8
- gemspec :path => "../../"
9
-
10
- # The Coveralls gem can't handle more recent versions of the SimpleCov gem
11
- gem 'simplecov', '<= 0.16.1'
12
-
13
- # cuke_cataloger can play with pretty much any version of these but they all play differently with Ruby
14
- if RUBY_VERSION =~ /^1\.8/
15
- gem 'cucumber', '< 1.3.0'
16
- gem 'gherkin', '< 2.12.0'
17
- gem 'mime-types', '< 2.0' # The 'mime-types' gem requires Ruby 1.9.x on/after this version
18
- gem 'rainbow', '< 2.0' # Ruby 1.8.x support dropped after this version
19
- gem 'rake', '< 11.0' # Rake dropped 1.8.x support after this version
20
- elsif RUBY_VERSION =~ /^1\./
21
- gem 'cucumber', '< 2.0.0'
22
- gem 'mime-types', '< 3.0.0' # The 'mime-types' gem requires Ruby 2.x on/after this version
23
- gem 'rainbow', '< 3.0' # The 'rainbow' gem requires Ruby 2.x on/after this version
24
- gem 'rake', '< 12.3.0' # The 'rake' gem requires Ruby 2.x on/after this version
25
- else
26
- # Have to use this version of Cucumber in order to avoid namespace problems introduced by the `cucumber-gherkin` gem
27
- gem 'cucumber', '2.2.0'
28
- end
29
-
30
- if RUBY_VERSION =~ /^1\./
31
- gem 'cuke_modeler', '< 3.0' # The 'cuke_modeler' gem requires Ruby 2.x on/after this version
32
- gem 'ffi', '< 1.9.15' # The 'ffi' gem requires Ruby 2.x on/after this version
33
- gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version
34
- gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version
35
- gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version
36
- end
37
-
38
- # The version of Thor being tested
39
- gem 'thor', '~> 0.0'
@@ -1,11 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec :path => "../../"
3
-
4
- # The Coveralls gem can't handle more recent versions of the SimpleCov gem
5
- gem 'simplecov', '<= 0.16.1'
6
-
7
- # Have to use this version of Cucumber in order to avoid namespace problems introduced by the `cucumber-gherkin` gem
8
- gem 'cucumber', '2.2.0'
9
-
10
- # The version of Thor being tested
11
- gem 'thor', '~> 1.0'
@@ -1,22 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/spec_helper"
2
- require 'rubygems/mock_gem_ui'
3
-
4
-
5
- describe 'the gem' do
6
-
7
- here = File.dirname(__FILE__)
8
-
9
- let(:gemspec) { eval(File.read "#{here}/../../../cuke_cataloger.gemspec") }
10
-
11
- it 'has an executable' do
12
- expect(gemspec.executables).to include('cuke_cataloger')
13
- end
14
-
15
- it 'validates cleanly' do
16
- mock_ui = Gem::MockGemUi.new
17
- Gem::DefaultUserInteraction.use_ui(mock_ui) { gemspec.validate }
18
-
19
- expect(mock_ui.error).to_not match(/warn/i)
20
- end
21
-
22
- end
@@ -1,23 +0,0 @@
1
- unless RUBY_VERSION.to_s < '1.9.0'
2
- require 'simplecov'
3
- SimpleCov.command_name('cuke_cataloger-cucumber')
4
- end
5
-
6
- here = File.dirname(__FILE__)
7
- require "#{here}/../../file_helper"
8
-
9
- require 'cuke_cataloger'
10
-
11
-
12
- RSpec.configure do |config|
13
- config.before(:all) do
14
- @lib_directory = "#{here}/../../../lib"
15
- end
16
-
17
- config.after(:all) do
18
- CukeCataloger::FileHelper.created_directories.each do |dir_path|
19
- FileUtils.remove_entry(dir_path, true)
20
- end
21
- end
22
-
23
- end
@@ -1,295 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/spec_helper"
2
-
3
-
4
- describe 'UniqueTestCaseTagger, Integration' do
5
-
6
- clazz = CukeCataloger::UniqueTestCaseTagger
7
-
8
- before(:each) do
9
- @tagger = clazz.new
10
- end
11
-
12
- describe 'test tagging' do
13
-
14
- # Bug fix - The #object_id of an object is used to track whether or not an id is already known or not for a
15
- # particular test. Some ids may already have been stored from previous method calls and, if the memory from those
16
- # previous calls is reassigned to new objects, this could result in test ids being associated with tests that don't
17
- # have them.
18
-
19
- it 'clears its known ids when it tags tests' do
20
- # Using ids that are not used for memory allocation by Ruby since they are used for predefined constants.
21
- @tagger.instance_variable_set(:@known_id_tags, {0 => '123', 2 => '456'})
22
-
23
- path = CukeCataloger::FileHelper.create_directory
24
- @tagger.tag_tests(path, '')
25
-
26
- expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(0)
27
- expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(1)
28
- end
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
-
86
- end
87
-
88
- describe 'data validation' do
89
-
90
- # Bug fix - The #object_id of an object is used to track whether or not an id is already known or not for a
91
- # particular test. Some ids may already have been stored from previous method calls and, if the memory from those
92
- # previous calls is reassigned to new objects, this could result in test ids being associated with tests that don't
93
- # have them.
94
-
95
- it 'clears its known ids when it validates test ids' do
96
- # Using ids that are not used for memory allocation by Ruby since they are used for predefined constants.
97
- @tagger.instance_variable_set(:@known_id_tags, {0 => '123', 2 => '456'})
98
-
99
- path = CukeCataloger::FileHelper.create_directory
100
- @tagger.validate_test_ids(path, '')
101
-
102
- expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(0)
103
- expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(1)
104
- end
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
142
- end
143
-
144
- describe 'test scanning' do
145
-
146
- # Bug fix - The #object_id of an object is used to track whether or not an id is already known or not for a
147
- # particular test. Some ids may already have been stored from previous method calls and, if the memory from those
148
- # previous calls is reassigned to new objects, this could result in test ids being associated with tests that don't
149
- # have them.
150
-
151
- it 'clears its known ids when it scans for tagged tests' do
152
- # Using ids that are not used for memory allocation by Ruby since they are used for predefined constants.
153
- @tagger.instance_variable_set(:@known_id_tags, {0 => '123', 2 => '456'})
154
-
155
- path = CukeCataloger::FileHelper.create_directory
156
- @tagger.scan_for_tagged_tests(path, '')
157
-
158
- expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(0)
159
- expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(1)
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
-
201
- end
202
-
203
- describe 'tag indexing' do
204
-
205
- # Bug fix - The #object_id of an object is used to track whether or not an id is already known or not for a
206
- # particular test. Some ids may already have been stored from previous method calls and, if the memory from those
207
- # previous calls is reassigned to new objects, this could result in test ids being associated with tests that don't
208
- # have them.
209
-
210
- it 'clears its known ids when it determines known test ids' do
211
- # Using ids that are not used for memory allocation by Ruby since they are used for predefined constants.
212
- @tagger.instance_variable_set(:@known_id_tags, {0 => '123', 2 => '456'})
213
-
214
- path = CukeCataloger::FileHelper.create_directory
215
- @tagger.determine_known_ids(path, '')
216
-
217
- expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(0)
218
- expect(@tagger.instance_variable_get(:@known_id_tags)).to_not include(1)
219
- end
220
-
221
- it 'does not count id like values that are not in the specified id column' do
222
- test_directory = CukeCataloger::FileHelper.create_directory
223
-
224
- text = "Feature:
225
-
226
- @test_case_1
227
- Scenario:
228
- * a step
229
-
230
- @test_case_2
231
- Scenario Outline:
232
- * a step with a <param>
233
- Examples: with rows
234
- | param | test_case_id | foobar |
235
- | value 1 | 2-1 | 2-4 |
236
- Examples: without rows
237
- | param | test_case_id | foobar |
238
- | value 1 | 2-2 | 2-5 |
239
- | value 2 | 2-3 | 2-6 |
240
-
241
- @test_case_3
242
- Scenario:
243
- * a step"
244
-
245
- CukeCataloger::FileHelper.create_feature_file(:directory => test_directory, :text => text)
246
-
247
-
248
- result = @tagger.determine_known_ids(test_directory, '@test_case_', 'foobar')
249
-
250
-
251
- expect(result).to_not include('2-1', '2-2', '2-3')
252
- end
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
-
293
- end
294
-
295
- end
@@ -1,81 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/spec_helper"
2
-
3
-
4
- describe 'UniqueTestCaseTagger, Unit' do
5
-
6
- clazz = CukeCataloger::UniqueTestCaseTagger
7
-
8
- before(:each) do
9
- @tagger = clazz.new
10
- end
11
-
12
- describe 'test tagging' do
13
- it "can tag a suite's tests" do
14
- expect(@tagger).to respond_to(:tag_tests)
15
- end
16
-
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
- end
20
- end
21
-
22
- describe 'data validation' do
23
- it "can check the validity of a suite's test ids" do
24
- expect(@tagger).to respond_to(:validate_test_ids)
25
- end
26
-
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
- end
30
-
31
- it 'returns validation results' do
32
- path = CukeCataloger::FileHelper.create_directory
33
- results = @tagger.validate_test_ids(path, '')
34
-
35
- expect(results).to be_a_kind_of(Array)
36
- end
37
- end
38
-
39
- describe 'test scanning' do
40
- it "can scan for tagged tests" do
41
- expect(@tagger).to respond_to(:scan_for_tagged_tests)
42
- end
43
-
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)
46
- end
47
-
48
- it 'returns scanning results' do
49
- path = CukeCataloger::FileHelper.create_directory
50
- results = @tagger.scan_for_tagged_tests(path, '')
51
-
52
- expect(results).to be_a_kind_of(Array)
53
- end
54
- end
55
-
56
- describe 'tag indexing' do
57
- it "can determine used test case indexes" do
58
- expect(@tagger).to respond_to(:determine_known_ids)
59
- end
60
-
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)
63
- end
64
- end
65
-
66
- describe 'formatting' do
67
- it 'has a tag location' do
68
- expect(@tagger).to respond_to(:tag_location)
69
- end
70
-
71
- it 'can change its tag location' do
72
- expect(@tagger).to respond_to(:tag_location=)
73
-
74
- @tagger.tag_location = :some_flag_value
75
- expect(@tagger.tag_location).to eq(:some_flag_value)
76
- @tagger.tag_location = :some_other_flag_value
77
- expect(@tagger.tag_location).to eq(:some_other_flag_value)
78
- end
79
- end
80
-
81
- end
data/todo.txt DELETED
@@ -1,5 +0,0 @@
1
- # TODO - Include fewer files in the gem (i.e. dont include the tests). See other projects for examples.
2
- # todo - Add better test coverage (rake tasks, cli, etc.)
3
- # todo - Use features as documentation
4
- # todo - Use the cuketagger gem for tagging
5
- # todo - document functionality/add functionality for changing added tag location/column location