class TestQueue::Runner::RSpec
Public Class Methods
new()
click to toggle source
Calls superclass method
TestQueue::Runner::new
# File lib/test_queue/runner/rspec.rb, line 16 def initialize # Require spec helper immediately require File.join(::RSpec::Core::RubyProject.root, 'spec', 'spec_helper') super(TestFramework::RSpec.new) end
Public Instance Methods
after_fork(num)
click to toggle source
set env number for simplecov
# File lib/test_queue/runner/rspec.rb, line 43 def after_fork(num) ENV['TEST_ENV_NUMBER'] = num > 1 ? num.to_s : '' end
cleanup_worker()
click to toggle source
clean exit to make sure at_exit {} hooks run (used by simplecov)
# File lib/test_queue/runner/rspec.rb, line 48 def cleanup_worker Kernel.exit @run_worker_exit_code || 0 end
run_worker(iterator)
click to toggle source
# File lib/test_queue/runner/rspec.rb, line 22 def run_worker(iterator) rspec = ::RSpec::Core::QueueRunner.new # Save worker return value so we can exit in cleanup_worker @run_worker_exit_code = rspec.run_each(iterator).to_i end
summarize()
click to toggle source
clean exit to make sure at_exit {} hooks run (used by simplecov) test-queue will invoke exit! by default which doesn't run at_exit github.com/instructure/canvas-lms/blob/039207c04faa67503633e4caf554dbc49cc78549/script/rspec-queue#L43
# File lib/test_queue/runner/rspec.rb, line 36 def summarize estatus = @completed.inject(0) { |s, worker| s + (worker.status.exitstatus || 1) } estatus = [estatus, 255].min exit estatus end
summarize_worker(worker)
click to toggle source
# File lib/test_queue/runner/rspec.rb, line 28 def summarize_worker(worker) worker.summary = worker.lines.grep(/ examples?, /).first worker.failure_output = worker.output[/^Failures:\n\n(.*)\n^Finished/m, 1] end