class Mutest::Env

Abstract base class for mutest environments

Constants

SEMANTICS_MESSAGE

Public Instance Methods

kill(mutation) click to toggle source

Kill mutation

@param [Mutation] mutation

@return [Result::Mutation]

# File lib/mutest/env.rb, line 25
def kill(mutation)
  test_result = run_mutation_tests(mutation)
  Result::Mutation.new(
    mutation:    mutation,
    test_result: test_result
  )
end

Private Instance Methods

run_mutation_tests(mutation) click to toggle source

Kill mutation under isolation with integration

@param [Mutation] mutation

@return [Result::Test]

rubocop:disable MethodLength

# File lib/mutest/env.rb, line 42
def run_mutation_tests(mutation)
  start = Time.now
  tests = selector.call(mutation.subject)

  config.isolation.call do
    mutation.insert(config.kernel)
    integration.call(tests)
  end
rescue Isolation::Error => error
  Result::Test.new(
    output:  error.message,
    passed:  false,
    runtime: Time.now - start,
    tests:   tests
  )
end