gorgon 0.3.0 → 0.3.1
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/Gemfile.lock +3 -3
- data/gorgon.gemspec +2 -2
- data/lib/gorgon/gorgon_rspec_formatter.rb +49 -0
- data/lib/gorgon/progress_bar_view.rb +15 -4
- data/lib/gorgon/rspec_runner.rb +27 -0
- data/lib/gorgon/testunit_runner.rb +5 -1
- data/lib/gorgon/version.rb +1 -1
- data/lib/gorgon/worker.rb +13 -9
- data/spec/gorgon_rspec_formatter_spec.rb +63 -0
- data/spec/progress_bar_view_spec.rb +4 -0
- data/spec/rspec_runner_spec.rb +41 -0
- data/spec/worker_spec.rb +22 -22
- metadata +24 -20
data/Gemfile.lock
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
gorgon (0.3.
|
4
|
+
gorgon (0.3.1)
|
5
5
|
amqp (~> 0.9.7)
|
6
6
|
awesome_print
|
7
7
|
bunny (~> 0.8.0)
|
8
8
|
colorize (~> 0.5.8)
|
9
9
|
open4 (~> 1.3.0)
|
10
10
|
ruby-progressbar (~> 1.0.1)
|
11
|
-
test-unit
|
12
11
|
uuidtools (~> 2.1.3)
|
13
12
|
yajl-ruby (~> 1.1.0)
|
14
13
|
|
@@ -49,4 +48,5 @@ PLATFORMS
|
|
49
48
|
DEPENDENCIES
|
50
49
|
gorgon!
|
51
50
|
rake
|
52
|
-
rspec
|
51
|
+
rspec (~> 2.11.0)
|
52
|
+
test-unit
|
data/gorgon.gemspec
CHANGED
@@ -18,15 +18,15 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
|
-
s.add_development_dependency "rspec"
|
22
21
|
s.add_development_dependency "rake"
|
22
|
+
s.add_development_dependency "test-unit"
|
23
|
+
s.add_development_dependency "rspec", '~>2.11.0'
|
23
24
|
|
24
25
|
s.add_runtime_dependency "amqp", '~>0.9.7'
|
25
26
|
s.add_runtime_dependency "awesome_print"
|
26
27
|
s.add_runtime_dependency "open4", '~>1.3.0'
|
27
28
|
s.add_runtime_dependency "yajl-ruby", '~>1.1.0'
|
28
29
|
s.add_runtime_dependency "uuidtools", '~>2.1.3'
|
29
|
-
s.add_runtime_dependency "test-unit"
|
30
30
|
s.add_runtime_dependency "bunny", '~>0.8.0'
|
31
31
|
s.add_runtime_dependency "ruby-progressbar", '~>1.0.1'
|
32
32
|
s.add_runtime_dependency "colorize", '~>0.5.8'
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'rspec/core/formatters/base_formatter'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module RSpec
|
5
|
+
module Core
|
6
|
+
module Formatters
|
7
|
+
class GorgonRspecFormatter < BaseFormatter
|
8
|
+
attr_reader :output
|
9
|
+
|
10
|
+
def initialize(output)
|
11
|
+
super
|
12
|
+
@failures = []
|
13
|
+
end
|
14
|
+
|
15
|
+
def message(message)
|
16
|
+
@failures += message unless @failures.empty?
|
17
|
+
end
|
18
|
+
|
19
|
+
def stop
|
20
|
+
super
|
21
|
+
failures = examples.select { |e| e.execution_result[:status] == "failed" }
|
22
|
+
|
23
|
+
@failures += failures.map do |failure|
|
24
|
+
{
|
25
|
+
:test_name => "#{failure.full_description}: " \
|
26
|
+
"line #{failure.metadata[:line_number]}",
|
27
|
+
:description => failure.description,
|
28
|
+
:full_description => failure.full_description,
|
29
|
+
:status => failure.execution_result[:status],
|
30
|
+
:file_path => failure.metadata[:file_path],
|
31
|
+
:line_number => failure.metadata[:line_number],
|
32
|
+
}.tap do |hash|
|
33
|
+
if e=failure.exception
|
34
|
+
hash[:class] = e.class.name
|
35
|
+
hash[:message] = e.message
|
36
|
+
hash[:location] = e.backtrace
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def close
|
43
|
+
output.write @failures.to_json
|
44
|
+
output.close if IO === output && output != $stdout
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -8,10 +8,15 @@ LOADING_MSG = "Loading environment and workers..."
|
|
8
8
|
RUNNING_MSG = "Running files:"
|
9
9
|
LEGEND_MSG = "Legend:\nF - failure files count\nH - number of hosts that have run files\nW - number of workers running files"
|
10
10
|
|
11
|
+
PROGRESS_BAR_REFRESH_RATE = 0.5
|
12
|
+
# - because the resolution of the elapsed time is one second, we use the nyquist frequency of 0.5 seconds
|
13
|
+
# http://en.wikipedia.org/wiki/Nyquist_frequency
|
14
|
+
|
11
15
|
class ProgressBarView
|
12
16
|
def initialize job_state
|
13
17
|
@job_state = job_state
|
14
18
|
@job_state.add_observer(self)
|
19
|
+
@timer = EventMachine::PeriodicTimer.new(PROGRESS_BAR_REFRESH_RATE) { update_elapsed_time }
|
15
20
|
end
|
16
21
|
|
17
22
|
def show
|
@@ -50,6 +55,11 @@ class ProgressBarView
|
|
50
55
|
end
|
51
56
|
end
|
52
57
|
|
58
|
+
def update_elapsed_time
|
59
|
+
@timer.cancel if @finished
|
60
|
+
@progress_bar.refresh if @progress_bar
|
61
|
+
end
|
62
|
+
|
53
63
|
private
|
54
64
|
def gorgon_crashed? payload
|
55
65
|
payload[:type] == "crash" && payload[:action] != "finish"
|
@@ -70,7 +80,7 @@ private
|
|
70
80
|
bar = "%w>%i".colorize(colors[:bar])
|
71
81
|
title = "%t".colorize(colors[:title])
|
72
82
|
|
73
|
-
"#{title} | [#{bar}] %c/%C %
|
83
|
+
"#{title} | [#{bar}] %c/%C %a"
|
74
84
|
end
|
75
85
|
|
76
86
|
def terminal_size
|
@@ -124,10 +134,11 @@ private
|
|
124
134
|
end
|
125
135
|
|
126
136
|
def build_fail_message_from_hash failure
|
127
|
-
result = "#{'Test name'.
|
128
|
-
result << "\n#{
|
137
|
+
result = "#{'Test name'.light_yellow}: #{failure[:test_name]}"
|
138
|
+
result << "\n#{failure[:class].red}" if failure[:class]
|
139
|
+
result << "\n#{'Message:'.light_yellow} \n\t#{failure[:message]}" if failure[:message]
|
129
140
|
if failure[:location]
|
130
|
-
result << "\n#{'In:'.
|
141
|
+
result << "\n#{'In:'.light_yellow} \n\t"
|
131
142
|
result << failure[:location].join("\n\t")
|
132
143
|
end
|
133
144
|
result
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'stringio'
|
3
|
+
require "yajl"
|
4
|
+
|
5
|
+
require_relative "gorgon_rspec_formatter"
|
6
|
+
|
7
|
+
class RspecRunner
|
8
|
+
class << self
|
9
|
+
def run_file(filename)
|
10
|
+
args = [
|
11
|
+
'-f', 'RSpec::Core::Formatters::GorgonRspecFormatter',
|
12
|
+
filename
|
13
|
+
]
|
14
|
+
|
15
|
+
err, out = StringIO.new, StringIO.new
|
16
|
+
|
17
|
+
RSpec::Core::Runner.run(args, err, out)
|
18
|
+
out.rewind
|
19
|
+
|
20
|
+
Yajl::Parser.new(:symbolize_keys => true).parse(out.read)
|
21
|
+
end
|
22
|
+
|
23
|
+
def runner
|
24
|
+
:rspec
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -28,7 +28,7 @@ class Test::Unit::TestCase
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
-
class
|
31
|
+
class TestUnitRunner
|
32
32
|
def self.run_file(filename)
|
33
33
|
GorgonTestCases.clear_cases!
|
34
34
|
load filename
|
@@ -47,4 +47,8 @@ class TestRunner
|
|
47
47
|
|
48
48
|
output
|
49
49
|
end
|
50
|
+
|
51
|
+
def self.runner
|
52
|
+
:test_unit
|
53
|
+
end
|
50
54
|
end
|
data/lib/gorgon/version.rb
CHANGED
data/lib/gorgon/worker.rb
CHANGED
@@ -3,24 +3,24 @@ require "gorgon/amqp_service"
|
|
3
3
|
require 'gorgon/callback_handler'
|
4
4
|
require "gorgon/g_logger"
|
5
5
|
require 'gorgon/job_definition'
|
6
|
-
require "gorgon/testunit_runner"
|
7
6
|
|
8
7
|
require "uuidtools"
|
9
8
|
require "awesome_print"
|
10
9
|
require "socket"
|
11
10
|
|
12
|
-
module
|
13
|
-
def self.run_file filename
|
11
|
+
module TestRunner
|
12
|
+
def self.run_file filename, test_runner
|
14
13
|
start_t = Time.now
|
15
14
|
|
16
15
|
begin
|
17
|
-
failures =
|
16
|
+
failures = test_runner.run_file(filename)
|
18
17
|
length = Time.now - start_t
|
19
18
|
|
20
19
|
if failures.empty?
|
21
|
-
results = {:failures => [], :type => :pass, :time => length}
|
20
|
+
results = {:failures => [], :type => :pass, :runner => test_runner.runner, :time => length}
|
22
21
|
else
|
23
|
-
results = {:failures => failures, :type => :fail, :
|
22
|
+
results = {:failures => failures, :type => :fail, :runner => test_runner.runner,
|
23
|
+
:time => length}
|
24
24
|
end
|
25
25
|
rescue Exception => e
|
26
26
|
results = {:failures => ["Exception: #{e.message}\n#{e.backtrace.join("\n")}"], :type => :crash, :time => (Time.now - start_t)}
|
@@ -51,7 +51,6 @@ class Worker
|
|
51
51
|
:file_queue_name => job_definition.file_queue_name,
|
52
52
|
:reply_exchange_name => job_definition.reply_exchange_name,
|
53
53
|
:worker_id => worker_id,
|
54
|
-
:test_runner => WorkUnit,
|
55
54
|
:callback_handler => callback_handler,
|
56
55
|
:log_file => config[:log_file]
|
57
56
|
}
|
@@ -79,7 +78,6 @@ class Worker
|
|
79
78
|
@file_queue_name = params[:file_queue_name]
|
80
79
|
@reply_exchange_name = params[:reply_exchange_name]
|
81
80
|
@worker_id = params[:worker_id]
|
82
|
-
@test_runner = params[:test_runner]
|
83
81
|
@callback_handler = params[:callback_handler]
|
84
82
|
end
|
85
83
|
|
@@ -116,7 +114,13 @@ class Worker
|
|
116
114
|
end
|
117
115
|
|
118
116
|
def run_file(filename)
|
119
|
-
|
117
|
+
if filename =~ /_spec.rb$/i
|
118
|
+
require_relative "rspec_runner"
|
119
|
+
TestRunner.run_file(filename, RspecRunner)
|
120
|
+
else
|
121
|
+
require_relative "testunit_runner"
|
122
|
+
TestRunner.run_file(filename, TestUnitRunner)
|
123
|
+
end
|
120
124
|
end
|
121
125
|
|
122
126
|
def make_start_message(filename)
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'gorgon/gorgon_rspec_formatter'
|
2
|
+
|
3
|
+
BaseFormatter = RSpec::Core::Formatters::GorgonRspecFormatter
|
4
|
+
|
5
|
+
describe RSpec::Core::Formatters::GorgonRspecFormatter do
|
6
|
+
let(:example) {stub("Example", :description => "description",
|
7
|
+
:full_description => "Full_Description",
|
8
|
+
:metadata => {:file_path => "path/to/file", :line_number => 2},
|
9
|
+
:execution_result => {:status => "passed"}, :exception => nil)}
|
10
|
+
let(:fail_example) {stub("Example", :description => "description",
|
11
|
+
:full_description => "Full_Description",
|
12
|
+
:metadata => {:file_path => "path/to/file", :line_number => 2},
|
13
|
+
:execution_result => {:status => "failed"}, :exception => nil)}
|
14
|
+
|
15
|
+
let(:exception) { stub("Exception", :class => Object, :message => "some msg",
|
16
|
+
:backtrace => "backtrace")}
|
17
|
+
|
18
|
+
let(:output) { stub("StringIO", :write => nil, :close => nil) }
|
19
|
+
|
20
|
+
before do
|
21
|
+
@formatter = BaseFormatter.new(output)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "returns an array of hashes when there are failures" do
|
25
|
+
@formatter.stub!(:examples).and_return([example, fail_example])
|
26
|
+
|
27
|
+
expected_result = [{:test_name => "Full_Description: line 2", :description => "description",
|
28
|
+
:full_description => "Full_Description", :status => "failed",
|
29
|
+
:file_path => "path/to/file", :line_number => 2}]
|
30
|
+
output.should_receive(:write).with(expected_result.to_json)
|
31
|
+
@formatter.stop
|
32
|
+
@formatter.close
|
33
|
+
end
|
34
|
+
|
35
|
+
it "returns an empty array when all examples pass" do
|
36
|
+
@formatter.stub!(:examples).and_return([example, example])
|
37
|
+
|
38
|
+
output.should_receive(:write).with("[]")
|
39
|
+
@formatter.stop
|
40
|
+
@formatter.close
|
41
|
+
end
|
42
|
+
|
43
|
+
it "returns an empty array when all examples are pending" do
|
44
|
+
example.stub!(:execution_result).and_return(:status => "pending")
|
45
|
+
@formatter.stub!(:examples).and_return([example, example])
|
46
|
+
|
47
|
+
output.should_receive(:write).with("[]")
|
48
|
+
@formatter.stop
|
49
|
+
@formatter.close
|
50
|
+
end
|
51
|
+
|
52
|
+
it "returns exception details if there is an exception" do
|
53
|
+
fail_example.stub!(:exception).and_return(exception)
|
54
|
+
@formatter.stub!(:examples).and_return([fail_example])
|
55
|
+
expected_result = [{:test_name => "Full_Description: line 2", :description => "description",
|
56
|
+
:full_description => "Full_Description", :status => "failed",
|
57
|
+
:file_path => "path/to/file", :line_number => 2, :class => Object.name,
|
58
|
+
:message => "some msg", :location => "backtrace"}]
|
59
|
+
output.should_receive(:write).with(expected_result.to_json)
|
60
|
+
@formatter.stop
|
61
|
+
@formatter.close
|
62
|
+
end
|
63
|
+
end
|
@@ -2,6 +2,10 @@ require 'gorgon/progress_bar_view'
|
|
2
2
|
require 'gorgon/job_state'
|
3
3
|
|
4
4
|
describe ProgressBarView do
|
5
|
+
before do
|
6
|
+
EventMachine::PeriodicTimer.stub(:new)
|
7
|
+
end
|
8
|
+
|
5
9
|
describe "#initialize" do
|
6
10
|
it "adds itself to observers of job_state" do
|
7
11
|
job_state = JobState.new 1
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'gorgon/rspec_runner'
|
2
|
+
|
3
|
+
describe RspecRunner do
|
4
|
+
|
5
|
+
subject {RspecRunner}
|
6
|
+
it {should respond_to(:run_file).with(1).argument}
|
7
|
+
it {should respond_to(:runner).with(0).argument}
|
8
|
+
|
9
|
+
describe "#run_file" do
|
10
|
+
before do
|
11
|
+
RSpec::Core::Runner.stub(:run)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "uses Rspec runner to run filename and uses the correct options" do
|
15
|
+
RSpec::Core::Runner.should_receive(:run).with(["-f",
|
16
|
+
"RSpec::Core::Formatters::GorgonRspecFormatter",
|
17
|
+
"file"], anything, anything)
|
18
|
+
RspecRunner.run_file "file"
|
19
|
+
end
|
20
|
+
|
21
|
+
it "passes StringIO's (or something similar) to rspec runner" do
|
22
|
+
RSpec::Core::Runner.should_receive(:run).with(anything,
|
23
|
+
duck_type(:read, :write, :close),
|
24
|
+
duck_type(:read, :write, :close))
|
25
|
+
RspecRunner.run_file "file"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "parses the output of the Runner and returns it" do
|
29
|
+
str_io = stub("StringIO", :rewind => nil, :read => :content)
|
30
|
+
StringIO.stub!(:new).and_return(str_io)
|
31
|
+
Yajl::Parser.any_instance.should_receive(:parse).with(:content).and_return :result
|
32
|
+
RspecRunner.run_file("file").should == :result
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "#runner" do
|
37
|
+
it "returns :rspec" do
|
38
|
+
RspecRunner.runner.should == :rspec
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/spec/worker_spec.rb
CHANGED
@@ -14,7 +14,7 @@ end
|
|
14
14
|
describe Worker do
|
15
15
|
WORKER_ID = 1
|
16
16
|
let(:file_queue) { double("Queue") }
|
17
|
-
let(:reply_exchange) { double("Exchange") }
|
17
|
+
let(:reply_exchange) { double("Exchange", :publish => nil) }
|
18
18
|
let(:fake_amqp) { fake_amqp = FakeAmqp.new file_queue, reply_exchange }
|
19
19
|
let(:test_runner) { double("Test Runner") }
|
20
20
|
let(:callback_handler) { stub("Callback Handler", :before_start => nil, :after_complete => nil) }
|
@@ -28,7 +28,6 @@ describe Worker do
|
|
28
28
|
:file_queue_name => "queue",
|
29
29
|
:reply_exchange_name => "exchange",
|
30
30
|
:worker_id => WORKER_ID,
|
31
|
-
:test_runner => test_runner,
|
32
31
|
:callback_handler => callback_handler,
|
33
32
|
:log_file => "path/to/log_file"
|
34
33
|
}
|
@@ -73,7 +72,6 @@ few lines of output and send it to originator. Order matters" do
|
|
73
72
|
|
74
73
|
it "creates a new worker" do
|
75
74
|
JobDefinition.stub!(:new).and_return job_definition
|
76
|
-
stub_const("WorkUnit", test_runner)
|
77
75
|
Worker.should_receive(:new).with(params)
|
78
76
|
Worker.build 1, config
|
79
77
|
end
|
@@ -81,14 +79,15 @@ few lines of output and send it to originator. Order matters" do
|
|
81
79
|
|
82
80
|
describe '#work' do
|
83
81
|
before do
|
82
|
+
stub_const("TestRunner", test_runner)
|
84
83
|
Worker.any_instance.stub(:initialize_logger)
|
84
|
+
@worker = Worker.new params
|
85
85
|
end
|
86
86
|
|
87
87
|
it 'should do nothing if the file queue is empty' do
|
88
88
|
file_queue.should_receive(:pop).and_return(nil)
|
89
89
|
|
90
|
-
worker
|
91
|
-
worker.work
|
90
|
+
@worker.work
|
92
91
|
end
|
93
92
|
|
94
93
|
it "should send start message when file queue is not empty" do
|
@@ -100,11 +99,9 @@ few lines of output and send it to originator. Order matters" do
|
|
100
99
|
end
|
101
100
|
reply_exchange.should_receive(:publish).with(any_args())
|
102
101
|
|
103
|
-
test_runner.
|
102
|
+
test_runner.stub!(:run_file).and_return({:type => :pass, :time => 0})
|
104
103
|
|
105
|
-
worker
|
106
|
-
|
107
|
-
worker.work
|
104
|
+
@worker.work
|
108
105
|
end
|
109
106
|
|
110
107
|
it "should send finish message when test run is successful" do
|
@@ -117,11 +114,9 @@ few lines of output and send it to originator. Order matters" do
|
|
117
114
|
msg[:filename].should == 'testfile1'
|
118
115
|
end
|
119
116
|
|
120
|
-
test_runner.
|
121
|
-
|
122
|
-
worker = Worker.new params
|
117
|
+
test_runner.stub!(:run_file).and_return({:type => :pass, :time => 0})
|
123
118
|
|
124
|
-
worker.work
|
119
|
+
@worker.work
|
125
120
|
end
|
126
121
|
|
127
122
|
it "should send finish message when test run has failures" do
|
@@ -137,31 +132,36 @@ few lines of output and send it to originator. Order matters" do
|
|
137
132
|
msg[:failures].should == failures
|
138
133
|
end
|
139
134
|
|
140
|
-
test_runner.
|
141
|
-
|
142
|
-
worker = Worker.new params
|
135
|
+
test_runner.stub!(:run_file).and_return({:type => :fail, :time => 0, :failures => failures})
|
143
136
|
|
144
|
-
worker.work
|
137
|
+
@worker.work
|
145
138
|
end
|
146
139
|
|
147
140
|
it "should notify the callback framework that it has started" do
|
148
141
|
file_queue.stub(:pop => nil)
|
149
142
|
callback_handler.should_receive(:before_start)
|
150
143
|
|
151
|
-
worker
|
152
|
-
|
153
|
-
worker.work
|
144
|
+
@worker.work
|
154
145
|
end
|
155
146
|
|
156
147
|
it "should notify the callback framework when it finishes" do
|
157
148
|
file_queue.stub(:pop => nil)
|
158
149
|
callback_handler.should_receive(:after_complete)
|
159
150
|
|
160
|
-
worker
|
151
|
+
@worker.work
|
152
|
+
end
|
161
153
|
|
162
|
-
|
154
|
+
it "runs file using TestUnitRunner when test is unit test" do
|
155
|
+
file_queue.stub!(:pop).and_return("file_test.rb", nil)
|
156
|
+
test_runner.should_receive(:run_file).with("file_test.rb", TestUnitRunner).and_return({})
|
157
|
+
@worker.work
|
163
158
|
end
|
164
159
|
|
160
|
+
it "runs file using RspecRunner when file is a spec (finishes in _spec.rb)" do
|
161
|
+
file_queue.stub!(:pop).and_return("file_spec.rb", nil)
|
162
|
+
test_runner.should_receive(:run_file).with("file_spec.rb", RspecRunner).and_return({})
|
163
|
+
@worker.work
|
164
|
+
end
|
165
165
|
end
|
166
166
|
|
167
167
|
private
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gorgon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,10 +13,10 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2012-10-
|
16
|
+
date: 2012-10-05 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
|
-
name:
|
19
|
+
name: rake
|
20
20
|
requirement: !ruby/object:Gem::Requirement
|
21
21
|
none: false
|
22
22
|
requirements:
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
|
-
name:
|
35
|
+
name: test-unit
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
37
37
|
none: false
|
38
38
|
requirements:
|
@@ -47,6 +47,22 @@ dependencies:
|
|
47
47
|
- - ! '>='
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '0'
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: rspec
|
52
|
+
requirement: !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ~>
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: 2.11.0
|
58
|
+
type: :development
|
59
|
+
prerelease: false
|
60
|
+
version_requirements: !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 2.11.0
|
50
66
|
- !ruby/object:Gem::Dependency
|
51
67
|
name: amqp
|
52
68
|
requirement: !ruby/object:Gem::Requirement
|
@@ -127,22 +143,6 @@ dependencies:
|
|
127
143
|
- - ~>
|
128
144
|
- !ruby/object:Gem::Version
|
129
145
|
version: 2.1.3
|
130
|
-
- !ruby/object:Gem::Dependency
|
131
|
-
name: test-unit
|
132
|
-
requirement: !ruby/object:Gem::Requirement
|
133
|
-
none: false
|
134
|
-
requirements:
|
135
|
-
- - ! '>='
|
136
|
-
- !ruby/object:Gem::Version
|
137
|
-
version: '0'
|
138
|
-
type: :runtime
|
139
|
-
prerelease: false
|
140
|
-
version_requirements: !ruby/object:Gem::Requirement
|
141
|
-
none: false
|
142
|
-
requirements:
|
143
|
-
- - ! '>='
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: bunny
|
148
148
|
requirement: !ruby/object:Gem::Requirement
|
@@ -220,6 +220,7 @@ files:
|
|
220
220
|
- lib/gorgon/g_logger.rb
|
221
221
|
- lib/gorgon/gem_command_handler.rb
|
222
222
|
- lib/gorgon/gem_service.rb
|
223
|
+
- lib/gorgon/gorgon_rspec_formatter.rb
|
223
224
|
- lib/gorgon/host_state.rb
|
224
225
|
- lib/gorgon/job.rb
|
225
226
|
- lib/gorgon/job_definition.rb
|
@@ -231,6 +232,7 @@ files:
|
|
231
232
|
- lib/gorgon/ping_service.rb
|
232
233
|
- lib/gorgon/pipe_forker.rb
|
233
234
|
- lib/gorgon/progress_bar_view.rb
|
235
|
+
- lib/gorgon/rspec_runner.rb
|
234
236
|
- lib/gorgon/source_tree_syncer.rb
|
235
237
|
- lib/gorgon/testunit_runner.rb
|
236
238
|
- lib/gorgon/version.rb
|
@@ -241,6 +243,7 @@ files:
|
|
241
243
|
- spec/failures_printer_spec.rb
|
242
244
|
- spec/gem_command_handler_spec.rb
|
243
245
|
- spec/gem_service_spec.rb
|
246
|
+
- spec/gorgon_rspec_formatter_spec.rb
|
244
247
|
- spec/host_state_spec.rb
|
245
248
|
- spec/job_definition_spec.rb
|
246
249
|
- spec/job_state_spec.rb
|
@@ -251,6 +254,7 @@ files:
|
|
251
254
|
- spec/ping_service_spec.rb
|
252
255
|
- spec/pipe_forker_spec.rb
|
253
256
|
- spec/progress_bar_view_spec.rb
|
257
|
+
- spec/rspec_runner_spec.rb
|
254
258
|
- spec/source_tree_syncer_spec.rb
|
255
259
|
- spec/worker_manager_spec.rb
|
256
260
|
- spec/worker_spec.rb
|