class RSpec::Queue::ReportRunner
Attributes
configuration[R]
Public Instance Methods
call(options, stdout, stderr)
click to toggle source
# File lib/rspec/queue.rb, line 267 def call(options, stdout, stderr) setup(options, stdout, stderr) queue = CI::Queue.from_uri(queue_url, RSpec::Queue.config) supervisor = begin queue.supervisor rescue NotImplementedError => error abort! error.message end step("Waiting for workers to complete") unless supervisor.wait_for_workers unless supervisor.queue_initialized? abort! "No master was elected. Did all workers crash?" end unless supervisor.exhausted? abort! "#{supervisor.size} tests weren't run." end end # TODO: better reporting errors = supervisor.build.error_reports.sort_by(&:first).map(&:last) if errors.empty? step(green('No errors found')) 0 else message = errors.size == 1 ? "1 error found" : "#{errors.size} errors found" step(red(message), collapsed: false) puts errors 1 end end
Private Instance Methods
setup(options, out, err)
click to toggle source
# File lib/rspec/queue.rb, line 307 def setup(options, out, err) @options = options @configuration = RSpec.configuration @world = RSpec.world @configuration.error_stream = err @configuration.output_stream = out if @configuration.output_stream == $stdout @options.options.delete(:requires) # Prevent loading of spec_helper so the app doesn't need to boot @options.configure(@configuration) invalid_usage!('Missing --queue parameter') unless queue_url invalid_usage!('Missing --build parameter') unless RSpec::Queue.config.build_id end