cukedep 0.1.11 → 0.2.00
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.
- 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
|