cukedep 0.1.11 → 0.2.00
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +6 -14
- data/.ruby-version +1 -1
- data/.travis.yml +10 -10
- data/CHANGELOG.md +6 -0
- data/Gemfile +5 -5
- data/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/Rakefile +30 -30
- data/bin/cukedep +15 -15
- data/lib/cukedep/application.rb +105 -112
- data/lib/cukedep/cli/cmd-line.rb +11 -13
- data/lib/cukedep/config.rb +85 -89
- data/lib/cukedep/constants.rb +5 -5
- data/lib/cukedep/cuke-runner.rb +191 -198
- data/lib/cukedep/customization.rb +30 -30
- data/lib/cukedep/feature-model.rb +43 -46
- data/lib/cukedep/feature-rep.rb +9 -11
- data/lib/cukedep/file-action.rb +11 -18
- data/lib/cukedep/gherkin-facade.rb +11 -6
- data/lib/cukedep/gherkin-listener.rb +12 -42
- data/lib/cukedep/hook-dsl.rb +78 -78
- data/lib/cukedep/sandbox.rb +15 -16
- data/lib/cukedep.rb +1 -2
- data/sample/features/step_definitions/steps.rb +2 -2
- data/sample/model/model.rb +19 -20
- data/spec/cukedep/application_spec.rb +80 -80
- data/spec/cukedep/cli/cmd-line_spec.rb +88 -88
- data/spec/cukedep/cuke-runner_spec.rb +74 -74
- data/spec/cukedep/customization_spec.rb +31 -31
- data/spec/cukedep/debug-file-action.rb +29 -29
- data/spec/cukedep/feature-model_spec.rb +100 -100
- data/spec/cukedep/feature-rep_spec.rb +2 -1
- data/spec/cukedep/file-action_spec.rb +365 -366
- data/spec/cukedep/file-parsing.rb +39 -41
- data/spec/cukedep/gherkin-facade_spec.rb +48 -49
- data/spec/cukedep/gherkin-listener_spec.rb +55 -57
- data/spec/cukedep/hook-dsl_spec.rb +182 -182
- data/spec/cukedep/sample_features/cukedep_hooks.rb +30 -30
- data/spec/cukedep/sample_features/standalone.feature +1 -1
- data/templates/rake.erb +12 -21
- metadata +80 -58
- data/sample/result.html +0 -472
- data/spec/cukedep/sample_features/cukedep.rake +0 -215
- data/spec/cukedep/sample_features/dependencies.dot +0 -38
- data/spec/cukedep/sample_features/feature2id.csv +0 -7
@@ -1,30 +1,30 @@
|
|
1
|
-
# File: cukedep_hooks.rb
|
2
|
-
# This Ruby file specifies the custom code
|
3
|
-
# associated with Cukedep hooks.
|
4
|
-
|
5
|
-
# The code block will be executed before
|
6
|
-
# the very first Cucumber invocation.
|
7
|
-
before_cuke(:all) do
|
8
|
-
puts 'before all'
|
9
|
-
end
|
10
|
-
|
11
|
-
# The code block will be executed just before
|
12
|
-
# a Cucumber invocation.
|
13
|
-
# The argument is a frozen Array of feature file names
|
14
|
-
before_cuke(:each) do |_filenames|
|
15
|
-
puts 'before each'
|
16
|
-
end
|
17
|
-
|
18
|
-
# The code block will be executed just after
|
19
|
-
# a Cucumber invocation.
|
20
|
-
after_cuke(:each) do
|
21
|
-
puts 'after each'
|
22
|
-
end
|
23
|
-
|
24
|
-
# The code block will be executed just after
|
25
|
-
# the last Cucumber invocation.
|
26
|
-
after_cuke(:all) do
|
27
|
-
puts 'after all'
|
28
|
-
end
|
29
|
-
|
30
|
-
# End of file
|
1
|
+
# File: cukedep_hooks.rb
|
2
|
+
# This Ruby file specifies the custom code
|
3
|
+
# associated with Cukedep hooks.
|
4
|
+
|
5
|
+
# The code block will be executed before
|
6
|
+
# the very first Cucumber invocation.
|
7
|
+
before_cuke(:all) do
|
8
|
+
puts 'before all'
|
9
|
+
end
|
10
|
+
|
11
|
+
# The code block will be executed just before
|
12
|
+
# a Cucumber invocation.
|
13
|
+
# The argument is a frozen Array of feature file names
|
14
|
+
before_cuke(:each) do |_filenames|
|
15
|
+
puts 'before each'
|
16
|
+
end
|
17
|
+
|
18
|
+
# The code block will be executed just after
|
19
|
+
# a Cucumber invocation.
|
20
|
+
after_cuke(:each) do
|
21
|
+
puts 'after each'
|
22
|
+
end
|
23
|
+
|
24
|
+
# The code block will be executed just after
|
25
|
+
# the last Cucumber invocation.
|
26
|
+
after_cuke(:all) do
|
27
|
+
puts 'after all'
|
28
|
+
end
|
29
|
+
|
30
|
+
# End of file
|
data/templates/rake.erb
CHANGED
@@ -51,22 +51,21 @@ end
|
|
51
51
|
#######################################
|
52
52
|
|
53
53
|
# Constant holding the location of the original feature files
|
54
|
-
SOURCE_DIR = '<%=source_dir%>'
|
54
|
+
SOURCE_DIR = '<%=source_dir%>'.freeze
|
55
55
|
|
56
56
|
# Constant holding the location of the Cucumber project
|
57
|
-
CUKE_PROJECT = '<%=proj_dir%>'
|
57
|
+
CUKE_PROJECT = '<%=proj_dir%>'.freeze
|
58
58
|
|
59
59
|
# The list of all "legacy" feature file
|
60
60
|
# (feature files without the @feature: tag)
|
61
61
|
AllUnidentifiedFeatures = [<%anonymous_list = anonymous.map {|nm| "'#{nm}'"}%>
|
62
|
-
<%=anonymous_list.join("
|
63
|
-
]
|
62
|
+
<%=anonymous_list.join("\n ")%>
|
63
|
+
].freeze
|
64
64
|
|
65
65
|
# The list of all encountered feature ids
|
66
|
-
AllFeatureIdentifiers = [
|
67
|
-
<%=identifier_list.join("
|
68
|
-
]
|
69
|
-
|
66
|
+
AllFeatureIdentifiers = %I[<%identifier_list = feature_ids.map {|fid| "#{fid}"}%>
|
67
|
+
<%=identifier_list.join("\n ")%>
|
68
|
+
].freeze
|
70
69
|
|
71
70
|
def run_builtin_actions(anEvent)
|
72
71
|
actions = Cukedep::ActionTriplet.builtin(anEvent)
|
@@ -95,12 +94,11 @@ def copy_to_project(filenames)
|
|
95
94
|
end
|
96
95
|
end
|
97
96
|
|
98
|
-
|
99
97
|
# Helper method. Given the name of files in the features dir of the project,
|
100
98
|
# copy them into the source dir.
|
101
99
|
def copy_from_project(*filenames)
|
102
100
|
filenames.each do |fname|
|
103
|
-
source_path =
|
101
|
+
source_path = project_path_of(fname)
|
104
102
|
dest_path = source_path_of(fname)
|
105
103
|
FileUtils.copy_file(source_path, dest_path)
|
106
104
|
end
|
@@ -117,12 +115,11 @@ def clean_project_dir(fname_patterns)
|
|
117
115
|
filenames = Dir.glob(patt)
|
118
116
|
filenames.each { |fn| FileUtils.remove_file(fn) }
|
119
117
|
end
|
120
|
-
ensure
|
118
|
+
ensure # Always restore previous working dir.
|
121
119
|
Dir.chdir(curr_dir)
|
122
120
|
end
|
123
121
|
end
|
124
122
|
|
125
|
-
|
126
123
|
# Helper method. Invoke Cucumber with the given project root dir.
|
127
124
|
# Assumption: all features files to execute are placed
|
128
125
|
# in the appropriate folder.
|
@@ -138,7 +135,6 @@ def invoke_cuke(projectDir)
|
|
138
135
|
end
|
139
136
|
end
|
140
137
|
|
141
|
-
|
142
138
|
def process_files(filenames)
|
143
139
|
run_builtin_actions(:before_each)
|
144
140
|
copy_to_project(filenames)
|
@@ -151,17 +147,13 @@ def process_a_feature(filename)
|
|
151
147
|
process_files([filename])
|
152
148
|
end
|
153
149
|
|
154
|
-
|
155
150
|
# Default rake task is also top-level task
|
156
151
|
task default: :run_all_features
|
157
152
|
|
158
|
-
|
159
153
|
desc 'Run all features'
|
160
|
-
task run_all_features: [
|
161
|
-
; # Do nothing
|
154
|
+
task run_all_features: %I[before_all all_features after_all] do
|
162
155
|
end
|
163
156
|
|
164
|
-
|
165
157
|
desc 'Before all'
|
166
158
|
task :before_all do
|
167
159
|
run_builtin_actions(:before_all)
|
@@ -172,16 +164,15 @@ task :after_all do
|
|
172
164
|
run_builtin_actions(:after_all)
|
173
165
|
end
|
174
166
|
|
175
|
-
|
176
167
|
task :unidentified do
|
177
168
|
process_files(AllUnidentifiedFeatures)
|
178
169
|
end
|
179
170
|
|
180
171
|
# Tasks for feature files involved in dependencies
|
181
172
|
<%deps.each do |dep|%>
|
182
|
-
<%dep_list = dep.dependents.map { |ff| "
|
173
|
+
<%dep_list = dep.dependents.map { |ff| "#{ff.feature.identifier}" } %>
|
183
174
|
desc '<%=dep.dependee.feature.identifier%>: run <%=dep.dependee.basename%>'
|
184
|
-
task <%=dep.dependee.feature.identifier%><%= dep_list.empty? ? '' : %Q
|
175
|
+
task <%= dep_list.empty? ? ':' + dep.dependee.feature.identifier : dep.dependee.feature.identifier + ':'%><%= dep_list.empty? ? '' : %Q| %I[#{dep_list.join(' ')}]| %> do
|
185
176
|
process_a_feature('<%=dep.dependee.basename%>')
|
186
177
|
end
|
187
178
|
<%end%>
|
metadata
CHANGED
@@ -1,100 +1,130 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cukedep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.00
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dimitri Geshef
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '3.1'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.1.0
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- -
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.1'
|
30
|
+
- - ">="
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
32
|
+
version: 3.1.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: gherkin
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
|
-
- -
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '5.0'
|
40
|
+
- - ">="
|
32
41
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
42
|
+
version: 5.0.0
|
34
43
|
type: :runtime
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
38
|
-
- -
|
47
|
+
- - "~>"
|
39
48
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
49
|
+
version: '5.0'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 5.0.0
|
41
53
|
- !ruby/object:Gem::Dependency
|
42
54
|
name: rake
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
44
56
|
requirements:
|
45
|
-
- -
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '12.0'
|
60
|
+
- - ">="
|
46
61
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
62
|
+
version: 12.0.0
|
48
63
|
type: :runtime
|
49
64
|
prerelease: false
|
50
65
|
version_requirements: !ruby/object:Gem::Requirement
|
51
66
|
requirements:
|
52
|
-
- -
|
67
|
+
- - "~>"
|
53
68
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
69
|
+
version: '12.0'
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: 12.0.0
|
55
73
|
- !ruby/object:Gem::Dependency
|
56
74
|
name: rspec
|
57
75
|
requirement: !ruby/object:Gem::Requirement
|
58
76
|
requirements:
|
59
|
-
- -
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '3.6'
|
80
|
+
- - ">="
|
60
81
|
- !ruby/object:Gem::Version
|
61
|
-
version: 3.
|
82
|
+
version: 3.6.0
|
62
83
|
type: :development
|
63
84
|
prerelease: false
|
64
85
|
version_requirements: !ruby/object:Gem::Requirement
|
65
86
|
requirements:
|
66
|
-
- -
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.6'
|
90
|
+
- - ">="
|
67
91
|
- !ruby/object:Gem::Version
|
68
|
-
version: 3.
|
92
|
+
version: 3.6.0
|
69
93
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
94
|
+
name: rubygems
|
71
95
|
requirement: !ruby/object:Gem::Requirement
|
72
96
|
requirements:
|
73
|
-
- -
|
97
|
+
- - "~>"
|
74
98
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
99
|
+
version: '2.0'
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 2.0.0
|
76
103
|
type: :development
|
77
104
|
prerelease: false
|
78
105
|
version_requirements: !ruby/object:Gem::Requirement
|
79
106
|
requirements:
|
80
|
-
- -
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '2.0'
|
110
|
+
- - ">="
|
81
111
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
112
|
+
version: 2.0.0
|
83
113
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
114
|
+
name: simplecov
|
85
115
|
requirement: !ruby/object:Gem::Requirement
|
86
116
|
requirements:
|
87
|
-
- -
|
117
|
+
- - ">="
|
88
118
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
119
|
+
version: 0.10.0
|
90
120
|
type: :development
|
91
121
|
prerelease: false
|
92
122
|
version_requirements: !ruby/object:Gem::Requirement
|
93
123
|
requirements:
|
94
|
-
- -
|
124
|
+
- - ">="
|
95
125
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
97
|
-
description: Handle dependencies between feature files
|
126
|
+
version: 0.10.0
|
127
|
+
description: Handle dependencies between Cucumber feature files
|
98
128
|
email: famished.tiger@yahoo.com
|
99
129
|
executables:
|
100
130
|
- cukedep
|
@@ -102,19 +132,19 @@ extensions: []
|
|
102
132
|
extra_rdoc_files:
|
103
133
|
- README.md
|
104
134
|
files:
|
105
|
-
- .rspec
|
106
|
-
- .ruby-gemset
|
107
|
-
- .ruby-version
|
108
|
-
- .simplecov
|
109
|
-
- .travis.yml
|
110
|
-
- .yardopts
|
111
|
-
- cucumber.yml
|
112
|
-
- Gemfile
|
113
|
-
- Rakefile
|
135
|
+
- ".rspec"
|
136
|
+
- ".ruby-gemset"
|
137
|
+
- ".ruby-version"
|
138
|
+
- ".simplecov"
|
139
|
+
- ".travis.yml"
|
140
|
+
- ".yardopts"
|
114
141
|
- CHANGELOG.md
|
142
|
+
- Gemfile
|
115
143
|
- LICENSE.txt
|
116
144
|
- README.md
|
145
|
+
- Rakefile
|
117
146
|
- bin/cukedep
|
147
|
+
- cucumber.yml
|
118
148
|
- lib/cukedep.rb
|
119
149
|
- lib/cukedep/application.rb
|
120
150
|
- lib/cukedep/cli/cmd-line.rb
|
@@ -137,7 +167,6 @@ files:
|
|
137
167
|
- sample/model/model.rb
|
138
168
|
- sample/model/rentals.yml
|
139
169
|
- sample/model/users.yml
|
140
|
-
- sample/result.html
|
141
170
|
- spec/cukedep/application_spec.rb
|
142
171
|
- spec/cukedep/cli/cmd-line_spec.rb
|
143
172
|
- spec/cukedep/cuke-runner_spec.rb
|
@@ -150,53 +179,46 @@ files:
|
|
150
179
|
- spec/cukedep/gherkin-facade_spec.rb
|
151
180
|
- spec/cukedep/gherkin-listener_spec.rb
|
152
181
|
- spec/cukedep/hook-dsl_spec.rb
|
153
|
-
- spec/cukedep/sample_features/cukedep_hooks.rb
|
154
|
-
- spec/spec_helper.rb
|
155
182
|
- spec/cukedep/sample_features/a_few_tests.feature
|
156
|
-
- spec/cukedep/sample_features/
|
157
|
-
- spec/cukedep/sample_features/
|
158
|
-
- spec/cukedep/sample_features/
|
183
|
+
- spec/cukedep/sample_features/cukedep_hooks.rb
|
184
|
+
- spec/cukedep/sample_features/files_to_copy/README.md
|
185
|
+
- spec/cukedep/sample_features/files_to_copy/file1.txt
|
186
|
+
- spec/cukedep/sample_features/files_to_copy/file2.txt
|
187
|
+
- spec/cukedep/sample_features/files_to_copy/file3.txt
|
159
188
|
- spec/cukedep/sample_features/more_tests.feature
|
160
189
|
- spec/cukedep/sample_features/other_tests.feature
|
161
190
|
- spec/cukedep/sample_features/some_tests.feature
|
162
191
|
- spec/cukedep/sample_features/standalone.feature
|
163
192
|
- spec/cukedep/sample_features/still_other_tests.feature
|
164
193
|
- spec/cukedep/sample_features/yet_other_tests.feature
|
165
|
-
- spec/
|
166
|
-
- spec/cukedep/sample_features/files_to_copy/file2.txt
|
167
|
-
- spec/cukedep/sample_features/files_to_copy/file3.txt
|
168
|
-
- spec/cukedep/sample_features/files_to_copy/README.md
|
194
|
+
- spec/spec_helper.rb
|
169
195
|
- templates/rake.erb
|
170
196
|
homepage: https://github.com/famished-tiger/Cukedep
|
171
197
|
licenses:
|
172
198
|
- MIT
|
173
199
|
metadata: {}
|
174
|
-
post_install_message:
|
175
|
-
|
200
|
+
post_install_message: |
|
201
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
176
202
|
Thank you for installing Cukedep...
|
177
|
-
|
178
203
|
Enjoy using Cucumber with macros...
|
179
|
-
|
180
204
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
181
|
-
|
182
|
-
'
|
183
205
|
rdoc_options:
|
184
206
|
- --exclude="sample|spec"
|
185
207
|
require_paths:
|
186
208
|
- lib
|
187
209
|
required_ruby_version: !ruby/object:Gem::Requirement
|
188
210
|
requirements:
|
189
|
-
- -
|
211
|
+
- - ">="
|
190
212
|
- !ruby/object:Gem::Version
|
191
|
-
version: 1.
|
213
|
+
version: 2.1.0
|
192
214
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
215
|
requirements:
|
194
|
-
- -
|
216
|
+
- - ">="
|
195
217
|
- !ruby/object:Gem::Version
|
196
218
|
version: '0'
|
197
219
|
requirements: []
|
198
220
|
rubyforge_project:
|
199
|
-
rubygems_version: 2.
|
221
|
+
rubygems_version: 2.6.13
|
200
222
|
signing_key:
|
201
223
|
specification_version: 4
|
202
224
|
summary: Manage dependencies between Cucumber feature files
|