class Mutiny::Analysis::Analyser

Attributes

integration[R]

Public Class Methods

new(integration:) click to toggle source
# File lib/mutiny/analysis/analyser.rb, line 9
def initialize(integration:)
  @integration = integration
end

Public Instance Methods

call(mutant_set) click to toggle source
# File lib/mutiny/analysis/analyser.rb, line 13
def call(mutant_set)
  results = Results.new

  before_all(mutant_set)

  mutant_set.mutants.each do |mutant|
    results.add(mutant, analyse(mutant))
  end

  results
end

Protected Instance Methods

before_all(_mutant_set) click to toggle source
# File lib/mutiny/analysis/analyser.rb, line 27
def before_all(_mutant_set)
end
select_tests(_mutant) click to toggle source
# File lib/mutiny/analysis/analyser.rb, line 30
def select_tests(_mutant)
  fail "No implementation has been provided for select_tests"
end

Private Instance Methods

analyse(mutant) click to toggle source
# File lib/mutiny/analysis/analyser.rb, line 36
def analyse(mutant)
  mutant.apply
  mutant.stillborn? ? nil : run_tests(mutant)
end
run_tests(mutant) click to toggle source
# File lib/mutiny/analysis/analyser.rb, line 41
def run_tests(mutant)
  Isolation.call do
    test_set = select_tests(mutant)
    integration.run(test_set, fail_fast: true)
  end
end