Module: SimpleCov::ParallelAdapters
- Defined in:
- lib/simplecov/parallel_adapters.rb,
lib/simplecov/parallel_adapters/base.rb,
lib/simplecov/parallel_adapters/generic.rb,
lib/simplecov/parallel_adapters/parallel_tests.rb,
sig/simplecov.rbs,
sig/simplecov.rbs,
sig/simplecov.rbs,
sig/simplecov.rbs
Overview
Registry + selection for parallel-test-runner adapters. An adapter is
a class (used as a singleton, never instantiated) answering the
_Adapter contract; subclass ParallelAdapters::Base to inherit
no-op defaults. Register custom adapters via
SimpleCov::ParallelAdapters.register MyRunnerAdapter.
Defined Under Namespace
Modules: _Adapter Classes: Base, GenericAdapter, ParallelTestsAdapter
Class Method Summary collapse
-
.adapters ⇒ Object
Adapters in selection order.
-
.current ⇒ Object
The adapter SimpleCov should consult for this process — the first registered adapter whose
active?returns true. -
.register(adapter) ⇒ Object
Register a custom adapter.
-
.reset_current! ⇒ Object
Clear the memoized
currentselection.
Instance Method Summary collapse
-
#self?.adapters ⇒ Array[_Adapter]
Adapters in selection order: user-registered adapters first, then ParallelTestsAdapter, then GenericAdapter.
-
#self?.current ⇒ _Adapter?
The first registered adapter whose
active?returns true, or nil when no recognized parallel runner is active (single-worker run). -
#self?.register ⇒ _Adapter
Registers a custom adapter at the front of the selection list and returns it.
-
#self?.reset_current! ⇒ void
Clears the memoized
currentselection (primarily for tests that mutate env vars between examples).
Class Method Details
.adapters ⇒ Object
Adapters in selection order. ParallelTestsAdapter first (most specific — uses the gem's own API when the gem is loaded); then GenericAdapter as the env-var fallback. User-registered adapters are prepended (#register puts new entries at the front) so downstream code can override the built-ins by registering a more specific match.
44 45 46 |
# File 'lib/simplecov/parallel_adapters.rb', line 44 def adapters @adapters ||= [ParallelTestsAdapter, GenericAdapter] end |
.current ⇒ Object
The adapter SimpleCov should consult for this process — the first
registered adapter whose active? returns true. Returns nil when
no adapter is active (i.e., we're not running under any recognized
parallel test runner), in which case the caller should treat the
process as single-worker.
71 72 73 74 75 |
# File 'lib/simplecov/parallel_adapters.rb', line 71 def current return @current if defined?(@current) @current = adapters.find(&:active?) end |
.register(adapter) ⇒ Object
Register a custom adapter. Newly registered adapters are inserted at the front of the selection list so a custom adapter for a specific runner takes precedence over the built-in ParallelTests and Generic adapters.
class MyRunnerAdapter < SimpleCov::ParallelAdapters::Base
def self.active? = ENV["MY_RUNNER_PID"]
def self.first_worker? = ENV["MY_RUNNER_PID"].to_i == 1
def self.expected_worker_count = ENV["MY_RUNNER_WORKERS"].to_i
end
SimpleCov::ParallelAdapters.register MyRunnerAdapter
60 61 62 63 64 |
# File 'lib/simplecov/parallel_adapters.rb', line 60 def register(adapter) reset_current! adapters.unshift(adapter) unless adapters.include?(adapter) adapter end |
.reset_current! ⇒ Object
Clear the memoized current selection. Primarily for tests that
mutate env vars between examples; production runs are single-shot.
79 80 81 |
# File 'lib/simplecov/parallel_adapters.rb', line 79 def reset_current! remove_instance_variable(:@current) if defined?(@current) end |
Instance Method Details
#self?.adapters ⇒ Array[_Adapter]
Adapters in selection order: user-registered adapters first, then ParallelTestsAdapter, then GenericAdapter.
1508 |
# File 'sig/simplecov.rbs', line 1508
def self?.adapters: () -> Array[_Adapter]
|
#self?.current ⇒ _Adapter?
The first registered adapter whose active? returns true, or nil
when no recognized parallel runner is active (single-worker run).
1516 |
# File 'sig/simplecov.rbs', line 1516
def self?.current: () -> _Adapter?
|
#self?.register ⇒ _Adapter
Registers a custom adapter at the front of the selection list and
returns it. Clears the memoized current selection.
1512 |
# File 'sig/simplecov.rbs', line 1512
def self?.register: (_Adapter adapter) -> _Adapter
|
#self?.reset_current! ⇒ void
This method returns an undefined value.
Clears the memoized current selection (primarily for tests that
mutate env vars between examples).
1520 |
# File 'sig/simplecov.rbs', line 1520
def self?.reset_current!: () -> void
|