Class: KnapsackPro::Runners::Queue::MinitestRunner

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

Class Method Summary collapse

Methods inherited from BaseRunner

#initialize, #test_dir, #test_file_paths

Constructor Details

This class inherits a constructor from KnapsackPro::Runners::Queue::BaseRunner

Class Method Details

.run(args) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/knapsack_pro/runners/queue/minitest_runner.rb', line 5

def self.run(args)
  require 'minitest'

  ENV['KNAPSACK_PRO_TEST_SUITE_TOKEN'] = KnapsackPro::Config::Env.test_suite_token_minitest
  ENV['KNAPSACK_PRO_QUEUE_RECORDING_ENABLED'] = 'true'
  ENV['KNAPSACK_PRO_QUEUE_ID'] = KnapsackPro::Config::EnvGenerator.set_queue_id

  runner = new(KnapsackPro::Adapters::MinitestAdapter)

  # Add test_dir to load path to make work:
  #   require 'test_helper'
  # in test files.
  $LOAD_PATH.unshift(runner.test_dir)

  cli_args = (args || '').split
  run_tests(runner, true, cli_args, 0, [])
end

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



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/knapsack_pro/runners/queue/minitest_runner.rb', line 23

def self.run_tests(runner, can_initialize_queue, args, exitstatus, all_test_file_paths)
  test_file_paths = runner.test_file_paths(
    can_initialize_queue: can_initialize_queue,
    executed_test_files: all_test_file_paths
  )

  if test_file_paths.empty?
    KnapsackPro::Hooks::Queue.call_after_queue

    KnapsackPro::Report.save_node_queue_to_api
    exit(exitstatus)
  else
    subset_queue_id = KnapsackPro::Config::EnvGenerator.set_subset_queue_id
    ENV['KNAPSACK_PRO_SUBSET_QUEUE_ID'] = subset_queue_id

    KnapsackPro.tracker.reset!

    all_test_file_paths += test_file_paths

    result = minitest_run(runner, test_file_paths, args)
    exitstatus = 1 unless result

    KnapsackPro::Hooks::Queue.call_after_subset_queue

    KnapsackPro::Report.save_subset_queue_to_file

    run_tests(runner, false, args, exitstatus, all_test_file_paths)
  end
end