cukedep 0.1.10 → 0.1.11
Sign up to get free protection for your applications and to get access to all the features.
- 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
|