Sha256: 7d01cd23c3892bea430d1e30b39006da8a97a505993cf010f11d71badf59db4f
Contents?: true
Size: 1.37 KB
Versions: 3
Compression:
Stored size: 1.37 KB
Contents
# frozen_string_literal: true module Mutant # Abstract base class for mutant environments class Env include Adamantium::Flat, Anima.new( :actor_env, :config, :integration, :matchable_scopes, :mutations, :parser, :selector, :subjects ) SEMANTICS_MESSAGE = "Fix your lib to follow normal ruby semantics!\n" \ '{Module,Class}#name should return resolvable constant name as String or nil'.freeze # Kill mutation # # @param [Mutation] mutation # # @return [Result::Mutation] def kill(mutation) test_result = run_mutation_tests(mutation) Result::Mutation.new( mutation: mutation, test_result: test_result ) end private # Kill mutation under isolation with integration # # @param [Isolation] isolation # @param [Integration] integration # # @return [Result::Test] # # rubocop:disable MethodLength 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 end # Env end # Mutant
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mutant-0.8.19 | lib/mutant/env.rb |
mutant-0.8.18 | lib/mutant/env.rb |
mutant-0.8.17 | lib/mutant/env.rb |