Class: Browsable::Drivers::Minitest

Inherits:
Object
  • Object
show all
Defined in:
lib/browsable/drivers/minitest.rb

Overview

The Minitest driver — activated by ‘require “browsable/minitest”`.

Mirrors the RSpec driver: insert the middleware, clear the audit log on boot, render the TestReport once Minitest finishes. Uses ‘Minitest.after_run` for end-of-suite reporting.

Defined Under Namespace

Classes: Configuration

Constant Summary collapse

DEFAULTS =
{
  fail_on: :error,
  format: :human,
  output: :stdout,
  enabled: true
}.freeze

Class Method Summary collapse

Class Method Details

.after_runObject



53
54
55
56
57
58
59
60
# File 'lib/browsable/drivers/minitest.rb', line 53

def after_run
  return unless configuration.enabled
  return if Browsable.audit_log.empty?

  report = Browsable::TestReport.new
  emit(report)
  report.fail_suite_if_errors!(fail_on: configuration.fail_on) unless configuration.fail_on == :never
end

.configurationObject



27
28
29
# File 'lib/browsable/drivers/minitest.rb', line 27

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



31
32
33
# File 'lib/browsable/drivers/minitest.rb', line 31

def configure
  yield configuration
end

.install!Object



39
40
41
42
43
44
45
# File 'lib/browsable/drivers/minitest.rb', line 39

def install!
  require "minitest"
  ensure_rails!
  insert_middleware
  Browsable.audit_log.clear
  ::Minitest.after_run { Browsable::Drivers::Minitest.after_run }
end

.rails_applicationObject



47
48
49
50
51
# File 'lib/browsable/drivers/minitest.rb', line 47

def rails_application
  return nil unless defined?(::Rails)

  ::Rails.application
end

.reset!Object



35
36
37
# File 'lib/browsable/drivers/minitest.rb', line 35

def reset!
  @configuration = nil
end