henry-container 0.0.58 → 0.0.59
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +3 -0
- data/lib/henry/container/version.rb +1 -1
- data/lib/henry/task/cucumber_task.rb +2 -0
- data/lib/henry/task/minitest_task.rb +64 -0
- data/lib/henry/task/rspec_task.rb +2 -0
- data/lib/henry/task.rb +7 -6
- data/spec/minitest_task_spec.rb +19 -0
- data/spec/task/minitest_test_task.rb +7 -0
- metadata +8 -3
data/Rakefile
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'rake'
|
2
|
+
require 'fileutils'
|
2
3
|
require 'cucumber/rake/task'
|
3
4
|
|
4
5
|
module Henry
|
@@ -100,6 +101,7 @@ module Henry
|
|
100
101
|
return '' if self.data.reports.nil?
|
101
102
|
|
102
103
|
self.data.reports.collect do |report_options|
|
104
|
+
FileUtils.mkdir_p(self.reports_dir(report_options['format']))
|
103
105
|
"--format #{report_options['format']} --out #{self.report_file_path(report_options['format'], report_options['name'])}"
|
104
106
|
end.join(' ')
|
105
107
|
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/testtask'
|
3
|
+
|
4
|
+
module Henry
|
5
|
+
|
6
|
+
class Task
|
7
|
+
|
8
|
+
# The Henry Task implementation for MiniTest
|
9
|
+
class MiniTestTask < Task
|
10
|
+
|
11
|
+
# The temporary output file path for the MiniTest execution.
|
12
|
+
OUT_PATH = 'minitest.out'
|
13
|
+
|
14
|
+
# The reports path template.
|
15
|
+
REPORTS_DIR = '.henry/reports/minitest'
|
16
|
+
|
17
|
+
# Executes the Task and returns its results.
|
18
|
+
def execute
|
19
|
+
begin
|
20
|
+
Rake.application['minitest'].invoke
|
21
|
+
|
22
|
+
self.execution.code = 'OK'
|
23
|
+
self.execution.message = 'OK'
|
24
|
+
self.execution.output = File.open(OUT_PATH, 'r').read
|
25
|
+
rescue Exception => e
|
26
|
+
self.execution.code = 'ERROR'
|
27
|
+
self.execution.message = 'ERROR'
|
28
|
+
self.execution.output = File.open(OUT_PATH, 'r').read
|
29
|
+
self.execution.backtrace = e.message
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# Configures the Task.
|
34
|
+
#
|
35
|
+
# @param [Hash] params the task params.
|
36
|
+
def configure(params)
|
37
|
+
File.open(OUT_PATH, 'w') { |f| }
|
38
|
+
|
39
|
+
pattern = params['pattern'] || './spec{,/*/**}/*_spec.rb'
|
40
|
+
format = params['format'] || 'SpecReporter'
|
41
|
+
|
42
|
+
File.open("preconfig.rb", 'w') do |f|
|
43
|
+
f.write <<CODE
|
44
|
+
$stdout = File.open('#{OUT_PATH}', 'w')
|
45
|
+
require 'minitest/autorun'
|
46
|
+
require 'minitest/reporters'
|
47
|
+
MiniTest::Reporters.use! MiniTest::Reporters::#{format}.new
|
48
|
+
CODE
|
49
|
+
end
|
50
|
+
|
51
|
+
# Makes available the spec rake task.
|
52
|
+
Rake::TestTask.new('minitest') do |t|
|
53
|
+
t.pattern = pattern
|
54
|
+
t.ruby_opts << "-r ./preconfig"
|
55
|
+
end
|
56
|
+
|
57
|
+
self.export_params(params)
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'rake'
|
2
|
+
require 'fileutils'
|
2
3
|
require 'rspec/core/rake_task'
|
3
4
|
|
4
5
|
module Henry
|
@@ -94,6 +95,7 @@ module Henry
|
|
94
95
|
return '' if self.data.reports.nil?
|
95
96
|
|
96
97
|
self.data.reports.collect do |report_options|
|
98
|
+
FileUtils.mkdir_p(self.reports_dir(report_options['format']))
|
97
99
|
"--format #{report_options['format']} --out #{self.report_file_path(report_options['format'], report_options['name'])}"
|
98
100
|
end.join(' ')
|
99
101
|
end
|
data/lib/henry/task.rb
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
require_relative 'task/cucumber_task'
|
2
2
|
require_relative 'task/rspec_task'
|
3
|
+
require_relative 'task/minitest_task'
|
3
4
|
|
4
5
|
module Henry
|
5
|
-
|
6
|
-
# Henry Task
|
6
|
+
|
7
|
+
# Henry Task
|
7
8
|
class Task
|
8
9
|
|
9
10
|
# Accessors for name, data and enabled
|
10
11
|
attr_accessor :name, :data, :enabled
|
11
|
-
|
12
|
+
|
12
13
|
# Returns an instance of the target Task class.
|
13
14
|
# @note Factory to create X Task instances.
|
14
15
|
#
|
@@ -16,7 +17,7 @@ module Henry
|
|
16
17
|
def self.create(name, data)
|
17
18
|
return Kernel.eval(data['class_name']).new(name, data)
|
18
19
|
end
|
19
|
-
|
20
|
+
|
20
21
|
# Initialize the Task with the given name and data.
|
21
22
|
def initialize(name, data)
|
22
23
|
self.name = name
|
@@ -41,7 +42,7 @@ module Henry
|
|
41
42
|
def report
|
42
43
|
self.execution.report
|
43
44
|
end
|
44
|
-
|
45
|
+
|
45
46
|
# Exports the Task params to the ENV.
|
46
47
|
#
|
47
48
|
# @param [Hash] params the Task params to be exported.
|
@@ -91,7 +92,7 @@ module Henry
|
|
91
92
|
def execute
|
92
93
|
abort "Your task class ('#{self.class}' may be?) MUST define this method with its execution logic."
|
93
94
|
end
|
94
|
-
|
95
|
+
|
95
96
|
# Nothing to be done here...
|
96
97
|
# The Task configuration code should be defined under this method on the specific Task class.
|
97
98
|
def configure(params)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'minitest/pride'
|
3
|
+
require 'henry'
|
4
|
+
require 'henry/task/minitest_task'
|
5
|
+
|
6
|
+
describe Henry::Task::MiniTestTask do
|
7
|
+
|
8
|
+
before do
|
9
|
+
@task = Henry::Task.create('name', {'class_name' => "Henry::Task::MiniTestTask"})
|
10
|
+
@task.configure({'pattern' => 'spec/task/*'})
|
11
|
+
@task.execute
|
12
|
+
@output_path = Henry::Task::MiniTestTask::OUT_PATH
|
13
|
+
end
|
14
|
+
|
15
|
+
it "must log something" do
|
16
|
+
File.open(@output_path).read.wont_be_empty
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
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.59
|
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-09-
|
12
|
+
date: 2012-09-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -133,7 +133,10 @@ files:
|
|
133
133
|
- lib/henry/logger_service.rb
|
134
134
|
- lib/henry/task.rb
|
135
135
|
- lib/henry/task/cucumber_task.rb
|
136
|
+
- lib/henry/task/minitest_task.rb
|
136
137
|
- lib/henry/task/rspec_task.rb
|
138
|
+
- spec/minitest_task_spec.rb
|
139
|
+
- spec/task/minitest_test_task.rb
|
137
140
|
homepage: http://henry.despegar.it
|
138
141
|
licenses: []
|
139
142
|
post_install_message:
|
@@ -158,5 +161,7 @@ rubygems_version: 1.8.24
|
|
158
161
|
signing_key:
|
159
162
|
specification_version: 3
|
160
163
|
summary: The Ruby Container for Henry
|
161
|
-
test_files:
|
164
|
+
test_files:
|
165
|
+
- spec/minitest_task_spec.rb
|
166
|
+
- spec/task/minitest_test_task.rb
|
162
167
|
has_rdoc:
|