Module: Henitai::Integration
- Defined in:
- lib/henitai/integration.rb,
lib/henitai/integration/rspec_process_runner.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, CoverageRuntimeSuppressors, CoverageStartSuppressor, 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.
317 318 319 320 321 322 323 324 325 326 |
# File 'lib/henitai/integration.rb', line 317 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 |