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.



21
22
23
24
# File 'lib/evilution/runner/baseline_runner.rb', line 21

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

Instance Method Details

#build_integrationObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/evilution/runner/baseline_runner.rb', line 32

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?,
    spec_selector: config.spec_selector
  }
  if klass == Evilution::Integration::RSpec
    kwargs[:related_specs_heuristic] = config.related_specs_heuristic?
    kwargs[:example_filter] = build_example_filter
  end
  klass.new(**kwargs)
end

#call(subjects) ⇒ Object



48
49
50
51
52
53
54
55
56
# File 'lib/evilution/runner/baseline_runner.rb', line 48

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



26
27
28
29
30
# File 'lib/evilution/runner/baseline_runner.rb', line 26

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

#neutralization_fallback_dirObject



62
63
64
# File 'lib/evilution/runner/baseline_runner.rb', line 62

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

#neutralization_resolverObject



58
59
60
# File 'lib/evilution/runner/baseline_runner.rb', line 58

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