Module: Polyrun::Minitest

Defined in:
lib/polyrun/minitest.rb,
sig/polyrun/minitest.rbs

Overview

Optional Minitest-oriented wiring (require polyrun/minitest explicitly).

Does not load the minitest gem. Call Minitest.install_parallel_provisioning! from test/test_helper.rb after Rails / DB configuration (same timing as a direct call to Data::ParallelProvisioning.run_suite_hooks!).

Defined Under Namespace

Modules: WorkerPingTestHook

Class Method Summary collapse

Class Method Details

.install_parallel_provisioning!void

This method returns an undefined value.

Runs Data::ParallelProvisioning.run_suite_hooks! (serial vs shard worker hooks).



34
35
36
# File 'lib/polyrun/minitest.rb', line 34

def install_parallel_provisioning!
  Polyrun::Data::ParallelProvisioning.run_suite_hooks!
end

.install_spec_quality!(only_if: nil, root: nil, output_path: nil) ⇒ Object

Per-test spec quality when POLYRUN_SPEC_QUALITY=1 (requires stdlib Coverage for line deltas).



52
53
54
55
56
57
58
# File 'lib/polyrun/minitest.rb', line 52

def install_spec_quality!(only_if: nil, root: nil, output_path: nil)
  pred = only_if || -> { Polyrun::SpecQuality.enabled? }
  return unless pred.call

  require_relative "spec_quality/minitest_hook"
  Polyrun::SpecQuality::MinitestHook.install!(only_if: pred, root: root, output_path: output_path)
end

.install_worker_ping!void

This method returns an undefined value.

Same ping semantics as RSpec.install_worker_ping!: ping! at test setup and teardown. Requires minitest to be loaded first (+Minitest::Test+ defined).



40
41
42
43
44
45
46
47
48
49
# File 'lib/polyrun/minitest.rb', line 40

def install_worker_ping!
  require_relative "worker_ping"
  unless defined?(::Minitest::Test)
    Polyrun::Log.warn "polyrun minitest: install_worker_ping! skipped (load minitest/autorun or minitest/test first)"
    return
  end

  ::Minitest::Test.send(:prepend, WorkerPingTestHook)
  Polyrun::WorkerPing.ensure_interval_ping_thread!
end