Module: Henitai::Integration
- Defined in:
- lib/henitai/integration.rb,
lib/henitai/integration/base.rb,
lib/henitai/integration/minitest.rb,
lib/henitai/integration/mutant_run_support.rb,
lib/henitai/integration/rspec_child_runner.rb,
lib/henitai/integration/child_debug_support.rb,
lib/henitai/integration/coverage_suppression.rb,
lib/henitai/integration/rspec_process_runner.rb,
lib/henitai/integration/rspec_test_selection.rb,
lib/henitai/integration/scenario_log_support.rb,
lib/henitai/integration/child_runtime_control.rb
Overview
Namespace for test-framework integrations.
An Integration is responsible for:
1. Discovering test files relevant to a Subject (test selection)
2. Running the selected tests in a child process with a mutant injected
3. Reporting pass/fail/timeout to the runner
Test selection uses longest-prefix matching:
Subject expression "Foo::Bar#method" matches example groups whose
description contains "Foo::Bar" or "Foo::Bar#method".
Built-in integrations:
rspec — RSpec 3.x
Defined Under Namespace
Modules: ChildDebugSupport, ChildRuntimeControl, CoverageRuntimeSuppressors, CoverageStartSuppressor, MutantRunSupport, RspecChildRunner, RspecTestSelection, SchedulerDiagnostics, SimpleCovStartSuppressor Classes: Base, ChildHandle, Minitest, Rspec, RspecProcessRunner, ScenarioLogSupport
Class Method Summary collapse
-
.for(name) ⇒ Class
Integration adapter for RSpec.
Class Method Details
.for(name) ⇒ Class
Integration adapter for RSpec.
This class exists as the stable public entry point for the RSpec integration, even though the concrete behavior is not implemented yet.
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/henitai/integration.rb', line 36 def self.for(name) const_get(name.capitalize) rescue NameError available = constants.filter_map do |constant_name| integration = const_get(constant_name) constant_name.to_s.downcase if integration.is_a?(Class) && integration < Base end.sort.join(", ") raise ArgumentError, "Unknown integration: #{name}. Available: #{available}" end |