cuke_slicer 2.1.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -1
  3. data/LICENSE.txt +1 -1
  4. data/README.md +18 -10
  5. data/cuke_slicer.gemspec +34 -19
  6. data/lib/cuke_slicer/collections/nested_tag_collection.rb +6 -4
  7. data/lib/cuke_slicer/collections/path_collection.rb +4 -2
  8. data/lib/cuke_slicer/collections/tag_collection.rb +6 -4
  9. data/lib/cuke_slicer/extractors/directory_extractor.rb +3 -1
  10. data/lib/cuke_slicer/extractors/file_extractor.rb +11 -4
  11. data/lib/cuke_slicer/filters/filter_set.rb +12 -10
  12. data/lib/cuke_slicer/helpers/extraction_helpers.rb +11 -5
  13. data/lib/cuke_slicer/helpers/filter_helpers.rb +36 -30
  14. data/lib/cuke_slicer/helpers/helpers.rb +5 -4
  15. data/lib/cuke_slicer/helpers/matching_helpers.rb +12 -7
  16. data/lib/cuke_slicer/slicer.rb +16 -20
  17. data/lib/cuke_slicer/version.rb +1 -1
  18. data/lib/cuke_slicer.rb +2 -2
  19. data/{features → testing/cucumber/features}/test_case_extraction.feature +22 -0
  20. metadata +80 -58
  21. data/.gitignore +0 -24
  22. data/.simplecov +0 -7
  23. data/.travis.yml +0 -33
  24. data/Gemfile +0 -4
  25. data/Rakefile +0 -85
  26. data/appveyor.yml +0 -81
  27. data/features/step_definitions/action_steps.rb +0 -107
  28. data/features/step_definitions/setup_steps.rb +0 -103
  29. data/features/step_definitions/verification_steps.rb +0 -58
  30. data/features/support/env.rb +0 -18
  31. data/gemfiles/cuke_modeler0.gemfile +0 -28
  32. data/gemfiles/cuke_modeler1.gemfile +0 -29
  33. data/gemfiles/cuke_modeler2.gemfile +0 -29
  34. data/gemfiles/cuke_modeler3.gemfile +0 -12
  35. data/spec/cuke_slicer_spec.rb +0 -28
  36. data/spec/slicer_integration_spec.rb +0 -279
  37. data/spec/slicer_unit_spec.rb +0 -37
  38. data/spec/spec_helper.rb +0 -22
  39. /data/{features → testing/cucumber/features}/tag_logic.feature +0 -0
  40. /data/{features → testing/cucumber/features}/test_case_filtering.feature +0 -0
  41. /data/{features → testing/cucumber/features}/validation.feature +0 -0
@@ -1,4 +1,4 @@
1
1
  module CukeSlicer
2
2
  # The current version for the gem.
3
- VERSION = "2.1.0"
3
+ VERSION = '3.0.0'.freeze
4
4
  end
data/lib/cuke_slicer.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'cuke_modeler'
2
2
 
3
- require "cuke_slicer/version"
4
- require "cuke_slicer/slicer"
3
+ require 'cuke_slicer/version'
4
+ require 'cuke_slicer/slicer'
5
5
 
6
6
 
7
7
  # Top level module under which the gem code lives.
@@ -82,3 +82,25 @@ Feature: Test case extraction
82
82
  And the test cases are to be extracted as objects
83
83
  When test cases are extracted from it
84
84
  Then the test cases are provided as objects
85
+
86
+ Scenario: Extract tests in Rules
87
+ Given the following feature file "a_test.feature":
88
+ """
89
+ Feature: A test feature
90
+
91
+ Scenario: Test 1
92
+ * some steps
93
+
94
+ Rule: Rule 1
95
+ Scenario Outline: Test 2
96
+ * some steps
97
+ Examples: Block 1
98
+ | param | value |
99
+ | a | 1 |
100
+ | b | 2 |
101
+ """
102
+ When test cases are extracted from it
103
+ Then the following test cases are found
104
+ | path/to/a_test.feature:3 |
105
+ | path/to/a_test.feature:11 |
106
+ | path/to/a_test.feature:12 |
metadata CHANGED
@@ -1,19 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cuke_slicer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Kessler
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-22 00:00:00.000000000 Z
11
+ date: 2024-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cuke_modeler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '3.2'
17
20
  - - "<"
18
21
  - !ruby/object:Gem::Version
19
22
  version: '4.0'
@@ -21,9 +24,40 @@ dependencies:
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '3.2'
24
30
  - - "<"
25
31
  - !ruby/object:Gem::Version
26
32
  version: '4.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: childprocess
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "<"
38
+ - !ruby/object:Gem::Version
39
+ version: '5.0'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '5.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: ffi
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: '2.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '2.0'
27
61
  - !ruby/object:Gem::Dependency
28
62
  name: bundler
29
63
  requirement: !ruby/object:Gem::Requirement
@@ -84,58 +118,72 @@ dependencies:
84
118
  name: simplecov
85
119
  requirement: !ruby/object:Gem::Requirement
86
120
  requirements:
87
- - - "~>"
121
+ - - "<"
88
122
  - !ruby/object:Gem::Version
89
- version: '0.0'
123
+ version: 1.0.0
90
124
  type: :development
91
125
  prerelease: false
92
126
  version_requirements: !ruby/object:Gem::Requirement
93
127
  requirements:
94
- - - "~>"
128
+ - - "<"
95
129
  - !ruby/object:Gem::Version
96
- version: '0.0'
130
+ version: 1.0.0
97
131
  - !ruby/object:Gem::Dependency
98
- name: racatt
132
+ name: simplecov-lcov
99
133
  requirement: !ruby/object:Gem::Requirement
100
134
  requirements:
101
- - - "~>"
135
+ - - "<"
102
136
  - !ruby/object:Gem::Version
103
137
  version: '1.0'
104
138
  type: :development
105
139
  prerelease: false
106
140
  version_requirements: !ruby/object:Gem::Requirement
107
141
  requirements:
108
- - - "~>"
142
+ - - "<"
109
143
  - !ruby/object:Gem::Version
110
144
  version: '1.0'
111
145
  - !ruby/object:Gem::Dependency
112
- name: coveralls
146
+ name: rainbow
113
147
  requirement: !ruby/object:Gem::Requirement
114
148
  requirements:
115
149
  - - "<"
116
150
  - !ruby/object:Gem::Version
117
- version: 1.0.0
151
+ version: 4.0.0
118
152
  type: :development
119
153
  prerelease: false
120
154
  version_requirements: !ruby/object:Gem::Requirement
121
155
  requirements:
122
156
  - - "<"
123
157
  - !ruby/object:Gem::Version
124
- version: 1.0.0
158
+ version: 4.0.0
125
159
  - !ruby/object:Gem::Dependency
126
- name: rainbow
160
+ name: rubocop
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "<="
164
+ - !ruby/object:Gem::Version
165
+ version: 0.50.0
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "<="
171
+ - !ruby/object:Gem::Version
172
+ version: 0.50.0
173
+ - !ruby/object:Gem::Dependency
174
+ name: yard
127
175
  requirement: !ruby/object:Gem::Requirement
128
176
  requirements:
129
177
  - - "<"
130
178
  - !ruby/object:Gem::Version
131
- version: 4.0.0
179
+ version: '1.0'
132
180
  type: :development
133
181
  prerelease: false
134
182
  version_requirements: !ruby/object:Gem::Requirement
135
183
  requirements:
136
184
  - - "<"
137
185
  - !ruby/object:Gem::Version
138
- version: 4.0.0
186
+ version: '1.0'
139
187
  description: Slices a Cucumber test suite into the smallest possible executable pieces
140
188
  (i.e. scenarios and individual outline example rows. These pieces can then be more
141
189
  easily used for running tests in parallel.
@@ -145,28 +193,10 @@ executables: []
145
193
  extensions: []
146
194
  extra_rdoc_files: []
147
195
  files:
148
- - ".gitignore"
149
- - ".simplecov"
150
- - ".travis.yml"
151
196
  - CHANGELOG.md
152
- - Gemfile
153
197
  - LICENSE.txt
154
198
  - README.md
155
- - Rakefile
156
- - appveyor.yml
157
199
  - cuke_slicer.gemspec
158
- - features/step_definitions/action_steps.rb
159
- - features/step_definitions/setup_steps.rb
160
- - features/step_definitions/verification_steps.rb
161
- - features/support/env.rb
162
- - features/tag_logic.feature
163
- - features/test_case_extraction.feature
164
- - features/test_case_filtering.feature
165
- - features/validation.feature
166
- - gemfiles/cuke_modeler0.gemfile
167
- - gemfiles/cuke_modeler1.gemfile
168
- - gemfiles/cuke_modeler2.gemfile
169
- - gemfiles/cuke_modeler3.gemfile
170
200
  - lib/cuke_slicer.rb
171
201
  - lib/cuke_slicer/collections/nested_tag_collection.rb
172
202
  - lib/cuke_slicer/collections/path_collection.rb
@@ -180,15 +210,20 @@ files:
180
210
  - lib/cuke_slicer/helpers/matching_helpers.rb
181
211
  - lib/cuke_slicer/slicer.rb
182
212
  - lib/cuke_slicer/version.rb
183
- - spec/cuke_slicer_spec.rb
184
- - spec/slicer_integration_spec.rb
185
- - spec/slicer_unit_spec.rb
186
- - spec/spec_helper.rb
213
+ - testing/cucumber/features/tag_logic.feature
214
+ - testing/cucumber/features/test_case_extraction.feature
215
+ - testing/cucumber/features/test_case_filtering.feature
216
+ - testing/cucumber/features/validation.feature
187
217
  homepage: https://github.com/enkessler/cuke_slicer
188
218
  licenses:
189
219
  - MIT
190
- metadata: {}
191
- post_install_message:
220
+ metadata:
221
+ bug_tracker_uri: https://github.com/enkessler/cuke_slicer/issues
222
+ changelog_uri: https://github.com/enkessler/cuke_slicer/blob/master/CHANGELOG.md
223
+ documentation_uri: https://www.rubydoc.info/gems/cuke_slicer
224
+ homepage_uri: https://github.com/enkessler/cuke_slicer
225
+ source_code_uri: https://github.com/enkessler/cuke_slicer
226
+ post_install_message:
192
227
  rdoc_options: []
193
228
  require_paths:
194
229
  - lib
@@ -196,31 +231,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
196
231
  requirements:
197
232
  - - ">="
198
233
  - !ruby/object:Gem::Version
199
- version: 1.9.3
234
+ version: '2.3'
200
235
  - - "<"
201
236
  - !ruby/object:Gem::Version
202
- version: '3.0'
237
+ version: '4.0'
203
238
  required_rubygems_version: !ruby/object:Gem::Requirement
204
239
  requirements:
205
240
  - - ">="
206
241
  - !ruby/object:Gem::Version
207
242
  version: '0'
208
243
  requirements: []
209
- rubyforge_project:
210
- rubygems_version: 2.7.6
211
- signing_key:
244
+ rubygems_version: 3.2.32
245
+ signing_key:
212
246
  specification_version: 4
213
247
  summary: A gem for extracting test cases from a Cucumber test suite.
214
- test_files:
215
- - features/step_definitions/action_steps.rb
216
- - features/step_definitions/setup_steps.rb
217
- - features/step_definitions/verification_steps.rb
218
- - features/support/env.rb
219
- - features/tag_logic.feature
220
- - features/test_case_extraction.feature
221
- - features/test_case_filtering.feature
222
- - features/validation.feature
223
- - spec/cuke_slicer_spec.rb
224
- - spec/slicer_integration_spec.rb
225
- - spec/slicer_unit_spec.rb
226
- - spec/spec_helper.rb
248
+ test_files: []
data/.gitignore DELETED
@@ -1,24 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- *.bundle
19
- *.so
20
- *.o
21
- *.a
22
- mkmf.log
23
- .idea/*
24
-
data/.simplecov DELETED
@@ -1,7 +0,0 @@
1
- SimpleCov.start do
2
- add_filter '/spec/'
3
- add_filter '/features/'
4
-
5
- #Ignore results that are older than 10 minutes
6
- merge_timeout 600
7
- end
data/.travis.yml DELETED
@@ -1,33 +0,0 @@
1
- os:
2
- - linux
3
- - osx
4
-
5
- language: ruby
6
- rvm:
7
- - 1.9.3
8
- - 2.3.8
9
- - 2.4.5
10
- - 2.5.3
11
- - 2.6.0
12
- - jruby-9.1.7.0
13
-
14
- gemfile:
15
- - gemfiles/cuke_modeler0.gemfile
16
- - gemfiles/cuke_modeler1.gemfile
17
- - gemfiles/cuke_modeler2.gemfile
18
- - gemfiles/cuke_modeler3.gemfile
19
-
20
- matrix:
21
- exclude:
22
- # Travis does not provide 1.9.3 on OSX
23
- - rvm: 1.9.3
24
- os: osx
25
- # Ruby 2.3.x for OSX is currently broken on TravisCI and is no longer a supported Ruby version, anyway.
26
- - rvm: 2.3.8
27
- os: osx
28
- # cuke_modeler 3.x has a minimum Ruby version of 2.3
29
- - rvm: 1.9.3
30
- gemfile: gemfiles/cuke_modeler3.gemfile
31
-
32
-
33
- script: bundle exec rake cuke_slicer:ci_build
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in cuke_slicer.gemspec
4
- gemspec
data/Rakefile DELETED
@@ -1,85 +0,0 @@
1
- require 'bundler/gem_tasks'
2
- require 'rake'
3
- require 'racatt'
4
- require 'coveralls/rake/task'
5
- require 'rainbow'
6
-
7
-
8
- Rainbow.enabled = true
9
-
10
- namespace 'racatt' do
11
- Racatt.create_tasks
12
- end
13
-
14
-
15
- namespace 'cuke_slicer' do
16
-
17
- desc 'Removes the current code coverage data'
18
- task :clear_coverage do
19
- code_coverage_directory = "#{File.dirname(__FILE__)}/coverage"
20
-
21
- FileUtils.remove_dir(code_coverage_directory, true)
22
- end
23
-
24
- desc 'Check documentation with RDoc'
25
- task :check_documentation do
26
- output = `rdoc lib -C`
27
- puts output
28
-
29
- if output =~ /100.00% documented/
30
- puts Rainbow('All code documented').green
31
- else
32
- raise Rainbow('Parts of the gem are undocumented').red
33
- end
34
- end
35
-
36
- desc 'Check documentation with RDoc'
37
- task :check_for_outdated_dependencies do
38
- output = `bundle outdated`
39
- puts output
40
-
41
- if output =~ /requested/
42
- raise Rainbow('Some dependencies are out of date!').red
43
- else
44
- puts Rainbow('All direct dependencies up to date!').green
45
- end
46
- end
47
-
48
- desc 'Run all of the tests'
49
- task :test_everything => [:clear_coverage] do
50
- rspec_args = '--tag ~@wip --pattern "spec/**/*_spec.rb" --force-color'
51
-
52
- cucumber_version = Gem.loaded_specs['cucumber'].version.version
53
-
54
- if cucumber_version =~ /^[123]\./
55
- cucumber_args = 'features -f progress -t ~@wip --color'
56
- else
57
- cucumber_args = "features -f progress -t 'not @wip' --color"
58
- end
59
-
60
- Rake::Task['racatt:test_everything'].invoke(rspec_args, cucumber_args)
61
- end
62
-
63
- # creates coveralls:push task
64
- Coveralls::RakeTask.new
65
-
66
- desc 'The task that CI will run. Do not run locally.'
67
- task :ci_build => ['cuke_slicer:test_everything', 'coveralls:push']
68
-
69
- desc 'Check that things look good before trying to release'
70
- task :prerelease_check do
71
- begin
72
- Rake::Task['cuke_slicer:test_everything'].invoke
73
- Rake::Task['cuke_slicer:check_documentation'].invoke
74
- rescue => e
75
- puts Rainbow("Something isn't right!").red
76
- raise e
77
- end
78
-
79
- puts Rainbow('All is well. :)').green
80
- end
81
-
82
- end
83
-
84
-
85
- task :default => 'cuke_slicer:test_everything'
data/appveyor.yml DELETED
@@ -1,81 +0,0 @@
1
- version: '1.0.{build}'
2
-
3
- environment:
4
- matrix:
5
-
6
- - RUBY_VERSION: 193
7
- BUNDLE_GEMFILE: gemfiles/cuke_modeler0.gemfile
8
- # AppVeyor does not have a 64-bit Ruby 1.9.3
9
- - RUBY_VERSION: 23
10
- BUNDLE_GEMFILE: gemfiles/cuke_modeler0.gemfile
11
- - RUBY_VERSION: 23-x64
12
- BUNDLE_GEMFILE: gemfiles/cuke_modeler0.gemfile
13
- - RUBY_VERSION: 24
14
- BUNDLE_GEMFILE: gemfiles/cuke_modeler0.gemfile
15
- - RUBY_VERSION: 24-x64
16
- BUNDLE_GEMFILE: gemfiles/cuke_modeler0.gemfile
17
- - RUBY_VERSION: 25
18
- BUNDLE_GEMFILE: gemfiles/cuke_modeler0.gemfile
19
- - RUBY_VERSION: 25-x64
20
- BUNDLE_GEMFILE: gemfiles/cuke_modeler0.gemfile
21
-
22
- - RUBY_VERSION: 193
23
- BUNDLE_GEMFILE: gemfiles/cuke_modeler1.gemfile
24
- # AppVeyor does not have a 64-bit Ruby 1.9.3
25
- - RUBY_VERSION: 23
26
- BUNDLE_GEMFILE: gemfiles/cuke_modeler1.gemfile
27
- - RUBY_VERSION: 23-x64
28
- BUNDLE_GEMFILE: gemfiles/cuke_modeler1.gemfile
29
- - RUBY_VERSION: 24
30
- BUNDLE_GEMFILE: gemfiles/cuke_modeler1.gemfile
31
- - RUBY_VERSION: 24-x64
32
- BUNDLE_GEMFILE: gemfiles/cuke_modeler1.gemfile
33
- - RUBY_VERSION: 25
34
- BUNDLE_GEMFILE: gemfiles/cuke_modeler1.gemfile
35
- - RUBY_VERSION: 25-x64
36
- BUNDLE_GEMFILE: gemfiles/cuke_modeler1.gemfile
37
-
38
- - RUBY_VERSION: 193
39
- BUNDLE_GEMFILE: gemfiles/cuke_modeler2.gemfile
40
- # AppVeyor does not have a 64-bit Ruby 1.9.3
41
- - RUBY_VERSION: 23
42
- BUNDLE_GEMFILE: gemfiles/cuke_modeler2.gemfile
43
- - RUBY_VERSION: 23-x64
44
- BUNDLE_GEMFILE: gemfiles/cuke_modeler2.gemfile
45
- - RUBY_VERSION: 24
46
- BUNDLE_GEMFILE: gemfiles/cuke_modeler2.gemfile
47
- - RUBY_VERSION: 24-x64
48
- BUNDLE_GEMFILE: gemfiles/cuke_modeler2.gemfile
49
- - RUBY_VERSION: 25
50
- BUNDLE_GEMFILE: gemfiles/cuke_modeler2.gemfile
51
- - RUBY_VERSION: 25-x64
52
- BUNDLE_GEMFILE: gemfiles/cuke_modeler2.gemfile
53
-
54
- # CukeModeler 3.x requires at least Ruby 2.3
55
- - RUBY_VERSION: 23
56
- BUNDLE_GEMFILE: gemfiles/cuke_modeler3.gemfile
57
- - RUBY_VERSION: 23-x64
58
- BUNDLE_GEMFILE: gemfiles/cuke_modeler3.gemfile
59
- - RUBY_VERSION: 24
60
- BUNDLE_GEMFILE: gemfiles/cuke_modeler3.gemfile
61
- - RUBY_VERSION: 24-x64
62
- BUNDLE_GEMFILE: gemfiles/cuke_modeler3.gemfile
63
- - RUBY_VERSION: 25
64
- BUNDLE_GEMFILE: gemfiles/cuke_modeler3.gemfile
65
- - RUBY_VERSION: 25-x64
66
- BUNDLE_GEMFILE: gemfiles/cuke_modeler3.gemfile
67
-
68
-
69
- install:
70
- - set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
71
- - bundle install
72
-
73
- build: off
74
-
75
- before_test:
76
- - ruby -v
77
- - gem -v
78
- - bundle -v
79
-
80
- test_script:
81
- - bundle exec rake cuke_slicer:ci_build
@@ -1,107 +0,0 @@
1
- When(/^test cases are extracted from "([^"]*)"$/) do |target|
2
- @output ||= {}
3
- filters = {}
4
-
5
- filters[:excluded_tags] = @excluded_tag_filters if @excluded_tag_filters
6
- filters[:included_tags] = @included_tag_filters if @included_tag_filters
7
- filters[:excluded_paths] = @excluded_path_filters if @excluded_path_filters
8
- filters[:included_paths] = @included_path_filters if @included_path_filters
9
-
10
- @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", filters, :file_line, &@custom_filter)
11
- end
12
-
13
- When(/^test cases are extracted from it$/) do
14
- @output ||= {}
15
- filters = {}
16
- target = @targets.first
17
- @output_type ||= :file_line
18
-
19
- begin
20
- @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", filters, @output_type)
21
- rescue ArgumentError => e
22
- @error_raised = e
23
- end
24
- end
25
-
26
- When(/^test cases are extracted from them$/) do
27
- @output ||= {}
28
- filters = {}
29
-
30
- @targets.each do |target|
31
- @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", filters, :file_line)
32
- end
33
- end
34
-
35
- When(/^test cases are extracted from "([^"]*)" using the following exclusive tag filters:$/) do |target, filters|
36
- @output ||= {}
37
- options = {}
38
-
39
- options[:excluded_tags] = filters.raw.flatten.collect { |filter| process_filter(filter) }
40
-
41
- @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", options, :file_line)
42
- end
43
-
44
- When(/^test cases are extracted from "([^"]*)" using the following inclusive tag filters:$/) do |target, filters|
45
- @output ||= {}
46
- options = {}
47
-
48
- options[:included_tags] = filters.raw.flatten.collect { |filter| process_filter(filter) }
49
-
50
- @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", options, :file_line)
51
- end
52
-
53
- When(/^test cases are extracted from "([^"]*)" using the following inclusive path filters:$/) do |target, filters|
54
- @output ||= {}
55
- options = {}
56
-
57
- options[:included_paths] = filters.raw.flatten.collect { |filter| process_filter(filter) }
58
-
59
- @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", options, :file_line)
60
- end
61
-
62
- When(/^test cases are extracted from "([^"]*)" using the following exclusive path filters:$/) do |target, filters|
63
- @output ||= {}
64
- options = {}
65
-
66
- options[:excluded_paths] = filters.raw.flatten.collect { |filter| process_filter(filter) }
67
-
68
- @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", options, :file_line)
69
- end
70
-
71
- When(/^test cases are extracted from "([^"]*)" using the following custom filter:$/) do |target, filter_block|
72
- @output ||= {}
73
-
74
- custom_filter = eval("Proc.new #{filter_block}")
75
-
76
- @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", :file_line, &custom_filter)
77
- end
78
-
79
- When(/^test cases are extracted from "([^"]*)" using "([^"]*)"$/) do |target, included_tag_filters|
80
- @output ||= {}
81
- options = {}
82
-
83
- options[:included_tags] = eval("[#{included_tag_filters}]")
84
-
85
- @output[target] = CukeSlicer::Slicer.new.slice("#{@default_file_directory}/#{target}", options, :file_line)
86
- end
87
-
88
- def process_filter(filter)
89
- filter.sub!('path/to', @default_file_directory)
90
- filter =~ /^\/.+\/$/ ? Regexp.new(filter.slice(1..-2)) : filter
91
- end
92
-
93
- When(/^it tries to extract test cases using an unknown filter type$/) do
94
- begin
95
- @slicer.slice(@default_file_directory, {unknown_filter: 'foo'}, :file_line)
96
- rescue ArgumentError => e
97
- @error_raised = e
98
- end
99
- end
100
-
101
- When(/^it tries to extract test cases using an invalid filter$/) do
102
- begin
103
- @slicer.slice(@default_file_directory, {included_tags: 7}, :file_line)
104
- rescue ArgumentError => e
105
- @error_raised = e
106
- end
107
- end