Class: KnapsackPro::Runners::Queue::BaseRunner

Inherits:
Object
  • Object
show all
Defined in:
lib/knapsack_pro/runners/queue/base_runner.rb

Direct Known Subclasses

CucumberRunner, MinitestRunner, RSpecRunner

Constant Summary collapse

TerminationError =
Class.new(StandardError)
TERMINATION_SIGNALS =
%w(HUP INT TERM ABRT QUIT USR1 USR2)
@@terminate_process =
false

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(adapter_class) ⇒ BaseRunner

Returns a new instance of BaseRunner.



20
21
22
23
24
# File 'lib/knapsack_pro/runners/queue/base_runner.rb', line 20

def initialize(adapter_class)
  @allocator_builder = KnapsackPro::QueueAllocatorBuilder.new(adapter_class)
  @allocator = allocator_builder.allocator
  trap_signals
end

Class Method Details

.child_statusObject



42
43
44
# File 'lib/knapsack_pro/runners/queue/base_runner.rb', line 42

def self.child_status
  $?
end

.handle_signal!Object

Raises:



46
47
48
# File 'lib/knapsack_pro/runners/queue/base_runner.rb', line 46

def self.handle_signal!
  raise TerminationError.new('Knapsack Pro process was terminated!') if @@terminate_process
end

.run(args) ⇒ Object

Raises:

  • (NotImplementedError)


12
13
14
# File 'lib/knapsack_pro/runners/queue/base_runner.rb', line 12

def self.run(args)
  raise NotImplementedError
end

.run_tests(runner, can_initialize_queue, args, exitstatus) ⇒ Object

Raises:

  • (NotImplementedError)


16
17
18
# File 'lib/knapsack_pro/runners/queue/base_runner.rb', line 16

def self.run_tests(runner, can_initialize_queue, args, exitstatus)
  raise NotImplementedError
end

.set_terminate_processObject



50
51
52
# File 'lib/knapsack_pro/runners/queue/base_runner.rb', line 50

def self.set_terminate_process
  @@terminate_process = true
end

Instance Method Details

#test_dirObject



33
34
35
# File 'lib/knapsack_pro/runners/queue/base_runner.rb', line 33

def test_dir
  allocator_builder.test_dir
end

#test_file_paths(args) ⇒ Object



26
27
28
29
30
31
# File 'lib/knapsack_pro/runners/queue/base_runner.rb', line 26

def test_file_paths(args)
  can_initialize_queue = args.fetch(:can_initialize_queue)
  executed_test_files = args.fetch(:executed_test_files)
  time_tracker = args.fetch(:time_tracker, nil)
  allocator.test_file_paths(can_initialize_queue, executed_test_files, time_tracker: time_tracker)
end