Class: Evilution::Runner::BaselineRunner

Inherits:
Object
  • Object
show all
Defined in:
lib/evilution/runner/baseline_runner.rb

Instance Method Summary collapse

Constructor Details

#initialize(config, hooks: nil) ⇒ BaselineRunner

Returns a new instance of BaselineRunner.



18
19
20
21
# File 'lib/evilution/runner/baseline_runner.rb', line 18

def initialize(config, hooks: nil)
  @config = config
  @hooks = hooks
end

Instance Method Details

#build_integrationObject



29
30
31
32
33
34
35
# File 'lib/evilution/runner/baseline_runner.rb', line 29

def build_integration
  klass = integration_class
  test_files = config.spec_files.empty? ? nil : config.spec_files
  kwargs = { test_files: test_files, hooks: hooks, fallback_to_full_suite: config.fallback_to_full_suite? }
  kwargs[:related_specs_heuristic] = config.related_specs_heuristic? if klass == Evilution::Integration::RSpec
  klass.new(**kwargs)
end

#call(subjects) ⇒ Object



37
38
39
40
41
42
43
44
45
# File 'lib/evilution/runner/baseline_runner.rb', line 37

def call(subjects)
  return nil unless config.baseline? && subjects.any?

  log_start
  baseline = Evilution::Baseline.new(timeout: config.timeout, **integration_class.baseline_options)
  result = baseline.call(subjects)
  log_complete(result)
  result
end

#integration_classObject



23
24
25
26
27
# File 'lib/evilution/runner/baseline_runner.rb', line 23

def integration_class
  @integration_class ||= Evilution::Runner::INTEGRATIONS.fetch(config.integration) do
    raise Evilution::Error, "unknown integration: #{config.integration}"
  end
end

#neutralization_fallback_dirObject



51
52
53
# File 'lib/evilution/runner/baseline_runner.rb', line 51

def neutralization_fallback_dir
  integration_class.baseline_options[:fallback_dir] || "spec"
end

#neutralization_resolverObject



47
48
49
# File 'lib/evilution/runner/baseline_runner.rb', line 47

def neutralization_resolver
  integration_class.baseline_options[:spec_resolver] || Evilution::SpecResolver.new
end