henry-container 0.0.53 → 0.0.54
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.
- data/lib/henry/container/version.rb +1 -1
- data/lib/henry/container.rb +26 -1
- data/lib/henry/environment.rb +13 -0
- data/lib/henry/task/cucumber_task.rb +27 -4
- data/lib/henry/task/rspec_task.rb +4 -3
- metadata +2 -2
data/lib/henry/container.rb
CHANGED
|
@@ -23,7 +23,7 @@ module Henry
|
|
|
23
23
|
self.before_execution
|
|
24
24
|
|
|
25
25
|
self.tasks.select {|task| task.enabled?}.each do |task|
|
|
26
|
-
task.configure(self.task_params(task.name))
|
|
26
|
+
task.configure(self.task_params(task.name), self.task_extended_context(task.name))
|
|
27
27
|
task.before_execute
|
|
28
28
|
task.execute
|
|
29
29
|
task.after_execute
|
|
@@ -122,6 +122,31 @@ module Henry
|
|
|
122
122
|
self.default_params.merge(self.params[task_name] || {})
|
|
123
123
|
end
|
|
124
124
|
|
|
125
|
+
# Return the default extended execution.
|
|
126
|
+
# @note Custom extended_executions will overwrite the defaults.
|
|
127
|
+
#
|
|
128
|
+
# @return [Hash] the Task default extended context
|
|
129
|
+
def default_extended_context
|
|
130
|
+
self.default_params['extended_context'] || {}
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# Retrun the custom extended_context fo the given task.
|
|
134
|
+
# @note default_extended_context will be used for undefined keys.
|
|
135
|
+
#
|
|
136
|
+
# @return [Hash] the Task custom extended context.
|
|
137
|
+
def extended_context
|
|
138
|
+
(self.params[task_name] || {})['extended_context']
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# Returns the custom execution_context for the given task.
|
|
142
|
+
# @note default_execution_context will be used for undefined keys.
|
|
143
|
+
#
|
|
144
|
+
# @param [String] task_name the target Task name.
|
|
145
|
+
# @return [Hash] the Task custom execution_context.
|
|
146
|
+
def task_extended_context
|
|
147
|
+
self.default_extended_context.merge(self.extended_context[task_name] || {})
|
|
148
|
+
end
|
|
149
|
+
|
|
125
150
|
|
|
126
151
|
# Returns de task hints (tasks to be executed) or an empty array if they are not defined.
|
|
127
152
|
#
|
data/lib/henry/environment.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'drb/drb'
|
|
2
|
+
require 'fileutils'
|
|
2
3
|
require 'json'
|
|
3
4
|
require 'colorize'
|
|
4
5
|
|
|
@@ -12,6 +13,11 @@ module Henry
|
|
|
12
13
|
# To be used as proxy to access the Task execution params from the tests
|
|
13
14
|
class Environment
|
|
14
15
|
|
|
16
|
+
# The path to the default file export directory
|
|
17
|
+
#
|
|
18
|
+
# @return [String]
|
|
19
|
+
EXPORT_FILE_PATH = "/output"
|
|
20
|
+
|
|
15
21
|
# Imports and returs the Task execution parameters.
|
|
16
22
|
#
|
|
17
23
|
# @return [Hash] the Task execution parameters
|
|
@@ -26,6 +32,13 @@ module Henry
|
|
|
26
32
|
return DRbObject.new_with_uri(LoggerService::DRB_URI)
|
|
27
33
|
end
|
|
28
34
|
|
|
35
|
+
# Copies the file from the given path to the default export directory
|
|
36
|
+
#
|
|
37
|
+
# @param [String] path the path of the file to be exported.
|
|
38
|
+
def self.export_file(path)
|
|
39
|
+
FileUtils.copy_file(path, "#{EXPORT_FILE_PATH}/#{File.basename(path)}")
|
|
40
|
+
end
|
|
41
|
+
|
|
29
42
|
end
|
|
30
43
|
|
|
31
44
|
end
|
|
@@ -24,6 +24,8 @@ module Henry
|
|
|
24
24
|
self.execution.output = File.open(OUT_PATH, 'r').read
|
|
25
25
|
self.execution.log = self.logger.log_as_hash
|
|
26
26
|
rescue Exception => e
|
|
27
|
+
# retry if self.rerun?
|
|
28
|
+
|
|
27
29
|
self.execution.code = 'ERROR'
|
|
28
30
|
self.execution.message = 'ERROR'
|
|
29
31
|
self.execution.output = File.open(OUT_PATH, 'r').read
|
|
@@ -35,15 +37,16 @@ module Henry
|
|
|
35
37
|
# Configures the Task.
|
|
36
38
|
#
|
|
37
39
|
# @param [Hash] params the task params.
|
|
38
|
-
|
|
40
|
+
# @param [Hash] extended_context task extended context.
|
|
41
|
+
def configure(params, extended_context)
|
|
39
42
|
File.open(OUT_PATH, 'w') { |f| }
|
|
40
43
|
|
|
41
44
|
# Makes available the cucumber rake task.
|
|
42
45
|
Cucumber::Rake::Task.new do |t|
|
|
43
46
|
if self.data.options
|
|
44
|
-
t.cucumber_opts = self.custom_options
|
|
47
|
+
t.cucumber_opts = "#{self.custom_options} #{extended_context['options']}"
|
|
45
48
|
else
|
|
46
|
-
t.cucumber_opts = self.default_options
|
|
49
|
+
t.cucumber_opts = "#{self.default_options} #{extended_context['options']}"
|
|
47
50
|
t.fork = false
|
|
48
51
|
end
|
|
49
52
|
end
|
|
@@ -55,7 +58,7 @@ module Henry
|
|
|
55
58
|
#
|
|
56
59
|
# @return [String]
|
|
57
60
|
def custom_options
|
|
58
|
-
"#{self.format_options} #{self.tags_options} #{self.report_options} #{self.misc_options}"
|
|
61
|
+
"#{self.format_options} #{self.tags_options} #{self.report_options} #{self.rerun_options} #{self.misc_options}"
|
|
59
62
|
end
|
|
60
63
|
|
|
61
64
|
# Returns the miscellaneous cucumber_opts.
|
|
@@ -101,6 +104,26 @@ module Henry
|
|
|
101
104
|
end.join(' ')
|
|
102
105
|
end
|
|
103
106
|
|
|
107
|
+
# Returns the cucumber_opts related with the rerun usage.
|
|
108
|
+
#
|
|
109
|
+
# @return [String]
|
|
110
|
+
def rerun_options
|
|
111
|
+
return ''
|
|
112
|
+
|
|
113
|
+
return '' if self.data.options['rerun'].nil?
|
|
114
|
+
|
|
115
|
+
self.data.options['rerun'] -= 1
|
|
116
|
+
|
|
117
|
+
"---format rerun --out tmp/rerun"
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# Returns true whenever rerun is set and the reties counter is still positive.
|
|
121
|
+
#
|
|
122
|
+
# @return [True,False]
|
|
123
|
+
def rerun?
|
|
124
|
+
self.data.options['rerun'] && self.data.options['rerun'] >= 0
|
|
125
|
+
end
|
|
126
|
+
|
|
104
127
|
# Returns the report file path for the given format and file name.
|
|
105
128
|
#
|
|
106
129
|
# @param [String] format the rspec formatter name.
|
|
@@ -35,17 +35,18 @@ module Henry
|
|
|
35
35
|
# Configures the Task.
|
|
36
36
|
#
|
|
37
37
|
# @param [Hash] params the task params.
|
|
38
|
-
|
|
38
|
+
# @param [Hash] extended_context the task extended context.
|
|
39
|
+
def configure(params, extended_context)
|
|
39
40
|
File.open(OUT_PATH, 'w') { |f| }
|
|
40
41
|
|
|
41
42
|
# Makes available the spec rake task.
|
|
42
43
|
RSpec::Core::RakeTask.new do |t|
|
|
43
44
|
if self.data.options
|
|
44
45
|
t.pattern = self.data.options['pattern'] || 'spec/*'
|
|
45
|
-
t.rspec_opts = self.custom_options
|
|
46
|
+
t.rspec_opts = "#{self.custom_options} #{extended_context['options']}"
|
|
46
47
|
else
|
|
47
48
|
t.pattern = 'spec/*'
|
|
48
|
-
t.rspec_opts = self.default_options
|
|
49
|
+
t.rspec_opts = "#{self.default_options} #{extended_context['options']}"
|
|
49
50
|
end
|
|
50
51
|
end
|
|
51
52
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: henry-container
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.54
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-
|
|
12
|
+
date: 2012-09-05 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rake
|