class Mutest::Runner::Sink
Public Class Methods
new(*)
click to toggle source
Initialize object
@return [undefined]
Calls superclass method
# File lib/mutest/runner/sink.rb, line 9 def initialize(*) super @start = Time.now @subject_results = {} end
Public Instance Methods
result(mutation_result)
click to toggle source
Handle mutation finish
@param [Result::Mutation] mutation_result
@return [self]
# File lib/mutest/runner/sink.rb, line 38 def result(mutation_result) subject = mutation_result.mutation.subject @subject_results[subject] = Result::Subject.new( subject: subject, mutation_results: previous_mutation_results(subject) + [mutation_result], tests: mutation_result.test_result.tests ) self end
status()
click to toggle source
Runner
status
@return [Result::Env]
# File lib/mutest/runner/sink.rb, line 18 def status Result::Env.new( env: env, runtime: Time.now - @start, subject_results: @subject_results.values ) end
stop?()
click to toggle source
Test
if scheduling stopped
@return [Boolean]
# File lib/mutest/runner/sink.rb, line 29 def stop? env.config.fail_fast && !status.subject_results.all?(&:success?) end
Private Instance Methods
previous_mutation_results(subject)
click to toggle source
Return previous results
@param [Subject]
@return [Array<Result::Mutation>]
# File lib/mutest/runner/sink.rb, line 57 def previous_mutation_results(subject) subject_result = @subject_results.fetch(subject) { return EMPTY_ARRAY } subject_result.mutation_results end