Class: Evilution::Integration::Minitest

Inherits:
Base
  • Object
show all
Defined in:
lib/evilution/integration/minitest.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#call

Constructor Details

#initialize(test_files: nil, hooks: nil) ⇒ Minitest

Returns a new instance of Minitest.



38
39
40
41
42
43
44
45
# File 'lib/evilution/integration/minitest.rb', line 38

def initialize(test_files: nil, hooks: nil)
  @test_files = test_files
  @minitest_loaded = false
  @spec_resolver = Evilution::SpecResolver.new(test_dir: "test", test_suffix: "_test.rb", request_dir: "integration")
  @crash_detector = nil
  @warned_files = Set.new
  super(hooks: hooks)
end

Class Method Details

.baseline_optionsObject



30
31
32
33
34
35
36
# File 'lib/evilution/integration/minitest.rb', line 30

def self.baseline_options
  {
    runner: baseline_runner,
    spec_resolver: Evilution::SpecResolver.new(test_dir: "test", test_suffix: "_test.rb", request_dir: "integration"),
    fallback_dir: "test"
  }
end

.baseline_runnerObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/evilution/integration/minitest.rb', line 11

def self.baseline_runner
  lambda { |test_file|
    require "minitest"
    require "stringio"
    ::Minitest::Runnable.runnables.clear
    files = File.directory?(test_file) ? Dir.glob(File.join(test_file, "**/*_test.rb")) : [test_file]
    files.each { |f| load(File.expand_path(f)) }
    out = StringIO.new
    options = ::Minitest.process_args(["--seed", "0"])
    options[:io] = out
    reporter = ::Minitest::CompositeReporter.new
    reporter << ::Minitest::SummaryReporter.new(out, options)
    reporter.start
    ::Minitest.__run(reporter, options)
    reporter.report
    reporter.passed?
  }
end