Class: TestQueue::Runner::RSpec
- Inherits:
-
TestQueue::Runner
- Object
- TestQueue::Runner
- TestQueue::Runner::RSpec
- Defined in:
- lib/test_queue/runner/rspec.rb
Constant Summary
Constants inherited from TestQueue::Runner
Instance Attribute Summary
Attributes inherited from TestQueue::Runner
#concurrency, #exit_when_done, #stats
Instance Method Summary collapse
-
#after_fork(num) ⇒ Object
set env number for simplecov.
-
#cleanup_worker ⇒ Object
clean exit to make sure at_exit {} hooks run (used by simplecov).
-
#initialize ⇒ RSpec
constructor
A new instance of RSpec.
- #run_worker(iterator) ⇒ Object
-
#summarize ⇒ Object
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.
- #summarize_worker(worker) ⇒ Object
Methods inherited from TestQueue::Runner
#abort, #after_fork_internal, #around_filter, #awaiting_suites?, #collect_worker_data, #connect_to_relay, #discover_suites, #distribute_queue, #enqueue_discovered_suite, #execute, #execute_internal, #kill_subprocesses, #kill_suite_discovery_process, #kill_workers, #prepare, #queue_status, #reap_suite_discovery_process, #reap_workers, #relay?, #relay_to_master, #spawn_workers, #start_master, #start_relay, #stats_file, #stop_master, #summarize_internal, #worker_completed
Constructor Details
#initialize ⇒ RSpec
Returns a new instance of RSpec.
16 17 18 19 20 |
# 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 |
Instance Method Details
#after_fork(num) ⇒ Object
set env number for simplecov
43 44 45 |
# 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 ⇒ Object
clean exit to make sure at_exit {} hooks run (used by simplecov)
48 49 50 |
# File 'lib/test_queue/runner/rspec.rb', line 48 def cleanup_worker Kernel.exit @run_worker_exit_code || 0 end |
#run_worker(iterator) ⇒ Object
22 23 24 25 26 |
# 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 ⇒ Object
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
36 37 38 39 40 |
# 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) ⇒ Object
28 29 30 31 |
# 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 |