Class: Evilution::Integration::RSpec

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

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#call

Constructor Details

#initialize(test_files: nil, hooks: nil, related_specs_heuristic: false) ⇒ RSpec

Returns a new instance of RSpec.



29
30
31
32
33
34
35
36
37
38
# File 'lib/evilution/integration/rspec.rb', line 29

def initialize(test_files: nil, hooks: nil, related_specs_heuristic: false)
  @test_files = test_files
  @rspec_loaded = false
  @spec_resolver = Evilution::SpecResolver.new
  @related_spec_heuristic = Evilution::RelatedSpecHeuristic.new
  @related_specs_heuristic_enabled = related_specs_heuristic
  @crash_detector = nil
  @warned_files = Set.new
  super(hooks: hooks)
end

Class Method Details

.baseline_optionsObject



25
26
27
# File 'lib/evilution/integration/rspec.rb', line 25

def self.baseline_options
  { runner: baseline_runner }
end

.baseline_runnerObject



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/evilution/integration/rspec.rb', line 12

def self.baseline_runner
  lambda { |spec_file|
    require "rspec/core"
    spec_dir = File.expand_path("spec")
    $LOAD_PATH.unshift(spec_dir) unless $LOAD_PATH.include?(spec_dir)
    ::RSpec.reset
    status = ::RSpec::Core::Runner.run(
      ["--format", "progress", "--no-color", "--order", "defined", spec_file]
    )
    status.zero?
  }
end