cukedep 0.1.10 → 0.1.11
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 +8 -8
- data/CHANGELOG.md +4 -0
- data/Rakefile +4 -6
- data/lib/cukedep/application.rb +89 -91
- data/lib/cukedep/cli/cmd-line.rb +0 -7
- data/lib/cukedep/config.rb +70 -74
- data/lib/cukedep/constants.rb +1 -1
- data/lib/cukedep/cuke-runner.rb +0 -5
- data/lib/cukedep/customization.rb +0 -5
- data/lib/cukedep/feature-model.rb +1 -7
- data/lib/cukedep/feature-rep.rb +0 -4
- data/lib/cukedep/file-action.rb +209 -221
- data/lib/cukedep/gherkin-facade.rb +7 -10
- data/lib/cukedep/gherkin-listener.rb +82 -89
- data/lib/cukedep/hook-dsl.rb +0 -4
- data/lib/cukedep/sandbox.rb +0 -5
- data/sample/features/step_definitions/steps.rb +30 -26
- data/sample/features/support/env.rb +1 -1
- data/sample/model/model.rb +198 -205
- data/sample/result.html +1 -1
- data/spec/cukedep/application_spec.rb +15 -16
- data/spec/cukedep/cli/cmd-line_spec.rb +13 -16
- data/spec/cukedep/cuke-runner_spec.rb +55 -61
- data/spec/cukedep/customization_spec.rb +21 -26
- data/spec/cukedep/debug-file-action.rb +12 -10
- data/spec/cukedep/feature-model_spec.rb +13 -16
- data/spec/cukedep/feature-rep_spec.rb +4 -7
- data/spec/cukedep/file-action_spec.rb +18 -34
- data/spec/cukedep/file-parsing.rb +9 -11
- data/spec/cukedep/gherkin-facade_spec.rb +3 -8
- data/spec/cukedep/gherkin-listener_spec.rb +10 -12
- data/spec/cukedep/hook-dsl_spec.rb +6 -9
- data/spec/cukedep/sample_features/cukedep.rake +44 -37
- data/spec/cukedep/sample_features/cukedep_hooks.rb +2 -2
- data/spec/cukedep/sample_features/dependencies.dot +1 -1
- data/templates/rake.erb +36 -29
- metadata +2 -2
@@ -11,7 +11,7 @@ end
|
|
11
11
|
# The code block will be executed just before
|
12
12
|
# a Cucumber invocation.
|
13
13
|
# The argument is a frozen Array of feature file names
|
14
|
-
before_cuke(:each) do |
|
14
|
+
before_cuke(:each) do |_filenames|
|
15
15
|
puts 'before each'
|
16
16
|
end
|
17
17
|
|
@@ -27,4 +27,4 @@ after_cuke(:all) do
|
|
27
27
|
puts 'after all'
|
28
28
|
end
|
29
29
|
|
30
|
-
# End of file
|
30
|
+
# End of file
|
@@ -2,7 +2,7 @@
|
|
2
2
|
// 'C:/Ruby193/lib/ruby/site_ruby/Cukedep/spec/cukedep/sample_features'
|
3
3
|
// This file uses the DOT syntax, a free utility from the Graphviz toolset.
|
4
4
|
// Graphviz is available at: www.graphviz.org
|
5
|
-
// File generated on Thu
|
5
|
+
// File generated on Thu Jun 18 21:34:32 2015.
|
6
6
|
|
7
7
|
digraph g {
|
8
8
|
size = "7, 11"; // Dimensions in inches...
|
data/templates/rake.erb
CHANGED
@@ -17,7 +17,7 @@ require 'rake'
|
|
17
17
|
# Use development codebase
|
18
18
|
require_relative '<%=rel_path.to_s + '/lib/cukedep/file-action'%>'
|
19
19
|
<% else%>
|
20
|
-
require 'cukedep/file-action'
|
20
|
+
require 'cukedep/file-action'
|
21
21
|
<% end%>
|
22
22
|
|
23
23
|
# Run Cucumber via specialized Rake task
|
@@ -25,19 +25,25 @@ require 'cucumber/rake/task'
|
|
25
25
|
# UGLY workaround for bug in Cucumber's rake task
|
26
26
|
if Gem::VERSION[0].to_i >= 2 && Cucumber::VERSION <= '1.3.2'
|
27
27
|
# Monkey-patch a buggy method
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
28
|
+
module Cucumber
|
29
|
+
module Rake
|
30
|
+
module Task
|
31
|
+
class ForkedCucumberRunner
|
32
|
+
def gem_available?(gemname)
|
33
|
+
if Gem::VERSION[0].to_i >= 2
|
34
|
+
gem_available_new_rubygems?(gemname)
|
35
|
+
else
|
36
|
+
gem_available_old_rubygems?(gemname)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
34
40
|
end
|
35
|
-
end
|
41
|
+
end
|
36
42
|
end # class
|
37
43
|
end
|
38
44
|
|
39
45
|
# Create a task called cucumber
|
40
|
-
Cucumber::Rake::Task.new do |
|
46
|
+
Cucumber::Rake::Task.new do |_|
|
41
47
|
end
|
42
48
|
|
43
49
|
#######################################
|
@@ -50,13 +56,14 @@ SOURCE_DIR = '<%=source_dir%>'
|
|
50
56
|
# Constant holding the location of the Cucumber project
|
51
57
|
CUKE_PROJECT = '<%=proj_dir%>'
|
52
58
|
|
53
|
-
# The list of all "legacy" feature file
|
54
|
-
|
59
|
+
# The list of all "legacy" feature file
|
60
|
+
# (feature files without the @feature: tag)
|
61
|
+
AllUnidentifiedFeatures = [<%anonymous_list = anonymous.map {|nm| "'#{nm}'"}%>
|
55
62
|
<%=anonymous_list.join(",\n ")%>
|
56
63
|
]
|
57
|
-
|
64
|
+
|
58
65
|
# The list of all encountered feature ids
|
59
|
-
AllFeatureIdentifiers = [ <%identifier_list = feature_ids.map {|
|
66
|
+
AllFeatureIdentifiers = [ <%identifier_list = feature_ids.map {|fid| ":#{fid}"}%>
|
60
67
|
<%=identifier_list.join(",\n ")%>
|
61
68
|
]
|
62
69
|
|
@@ -78,7 +85,7 @@ def project_path_of(aFilename)
|
|
78
85
|
CUKE_PROJECT + '/features/' + aFilename
|
79
86
|
end
|
80
87
|
|
81
|
-
# Helper method. Given the name of files in the source dir, copy them
|
88
|
+
# Helper method. Given the name of files in the source dir, copy them
|
82
89
|
# into the project dir.
|
83
90
|
def copy_to_project(filenames)
|
84
91
|
filenames.each do |fname|
|
@@ -89,7 +96,7 @@ def copy_to_project(filenames)
|
|
89
96
|
end
|
90
97
|
|
91
98
|
|
92
|
-
# Helper method. Given the name of files in the features dir of the project,
|
99
|
+
# Helper method. Given the name of files in the features dir of the project,
|
93
100
|
# copy them into the source dir.
|
94
101
|
def copy_from_project(*filenames)
|
95
102
|
filenames.each do |fname|
|
@@ -99,28 +106,28 @@ def copy_from_project(*filenames)
|
|
99
106
|
end
|
100
107
|
end
|
101
108
|
|
102
|
-
# Helper method. Delete all the files in the
|
103
|
-
# the project's features dir that match one of
|
109
|
+
# Helper method. Delete all the files in the
|
110
|
+
# the project's features dir that match one of
|
104
111
|
# the file name pattern
|
105
112
|
def clean_project_dir(fname_patterns)
|
106
|
-
curr_dir = Dir.getwd
|
113
|
+
curr_dir = Dir.getwd
|
107
114
|
begin
|
108
115
|
Dir.chdir(CUKE_PROJECT + '/features')
|
109
116
|
fname_patterns.each do |patt|
|
110
117
|
filenames = Dir.glob(patt)
|
111
118
|
filenames.each { |fn| FileUtils.remove_file(fn) }
|
112
119
|
end
|
113
|
-
ensure #Always restore previous working dir.
|
120
|
+
ensure # Always restore previous working dir.
|
114
121
|
Dir.chdir(curr_dir)
|
115
122
|
end
|
116
123
|
end
|
117
124
|
|
118
125
|
|
119
126
|
# Helper method. Invoke Cucumber with the given project root dir.
|
120
|
-
# Assumption: all features files to execute are placed
|
127
|
+
# Assumption: all features files to execute are placed
|
121
128
|
# in the appropriate folder.
|
122
129
|
def invoke_cuke(projectDir)
|
123
|
-
curr_dir = Dir.getwd
|
130
|
+
curr_dir = Dir.getwd
|
124
131
|
Dir.chdir(projectDir)
|
125
132
|
begin
|
126
133
|
do_cuke = Rake::Task[:cucumber]
|
@@ -137,7 +144,7 @@ def process_files(filenames)
|
|
137
144
|
copy_to_project(filenames)
|
138
145
|
invoke_cuke(CUKE_PROJECT)
|
139
146
|
run_builtin_actions(:after_each)
|
140
|
-
#del_from_project(filenames)
|
147
|
+
# del_from_project(filenames)
|
141
148
|
end
|
142
149
|
|
143
150
|
def process_a_feature(filename)
|
@@ -146,16 +153,16 @@ end
|
|
146
153
|
|
147
154
|
|
148
155
|
# Default rake task is also top-level task
|
149
|
-
task :
|
156
|
+
task default: :run_all_features
|
150
157
|
|
151
158
|
|
152
159
|
desc 'Run all features'
|
153
|
-
task :
|
160
|
+
task run_all_features: [:before_all, :all_features, :after_all] do
|
154
161
|
; # Do nothing
|
155
162
|
end
|
156
163
|
|
157
164
|
|
158
|
-
desc 'Before all'
|
165
|
+
desc 'Before all'
|
159
166
|
task :before_all do
|
160
167
|
run_builtin_actions(:before_all)
|
161
168
|
end
|
@@ -173,13 +180,13 @@ end
|
|
173
180
|
# Tasks for feature files involved in dependencies
|
174
181
|
<%deps.each do |dep|%>
|
175
182
|
<%dep_list = dep.dependents.map { |ff| ":#{ff.feature.identifier}" } %>
|
176
|
-
desc
|
177
|
-
task
|
183
|
+
desc '<%=dep.dependee.feature.identifier%>: run <%=dep.dependee.basename%>'
|
184
|
+
task <%=dep.dependee.feature.identifier%><%= dep_list.empty? ? '' : %Q|: [#{dep_list.join(', ') }]| %> do
|
178
185
|
process_a_feature('<%=dep.dependee.basename%>')
|
179
186
|
end
|
180
187
|
<%end%>
|
181
188
|
|
182
|
-
task :
|
189
|
+
task all_features: ([:unidentified] + AllFeatureIdentifiers) do
|
183
190
|
end
|
184
191
|
|
185
|
-
# End of file
|
192
|
+
# End of file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cukedep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dimitri Geshef
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber
|