module TestBench

Constants

Session

Attributes

session[W]

Public Class Methods

activate(receiver=nil, session: nil) click to toggle source
# File lib/test_bench/test_bench.rb, line 28
def self.activate(receiver=nil, session: nil)
  receiver ||= TOPLEVEL_BINDING.receiver

  fixture(session, receiver: receiver)
end
build_session(output: nil, abort_on_error: nil, **args) click to toggle source
# File lib/test_bench/test_bench.rb, line 62
def self.build_session(output: nil, abort_on_error: nil, **args)
  output ||= Output.build
  error_policy = session_error_policy(abort_on_error)

  Fixture::Session.build(output: output, error_policy: error_policy, **args)
end
context(title=nil, session: nil, &block) click to toggle source
# File lib/test_bench/test_bench.rb, line 42
def self.context(title=nil, session: nil, &block)
  evaluate(session: session) do
    context(title) do
      instance_exec(&block)
    end
  end
end
evaluate(session: nil, &block) click to toggle source
# File lib/test_bench/test_bench.rb, line 34
def self.evaluate(session: nil, &block)
  fixture = fixture(session)

  fixture.context do
    fixture.instance_exec(&block)
  end
end
exit_code(session, fail_deactivated_tests: nil) click to toggle source
# File lib/test_bench/test_bench.rb, line 79
def self.exit_code(session, fail_deactivated_tests: nil)
  if fail_deactivated_tests.nil?
    fail_deactivated_tests = Defaults.fail_deactivated_tests
  end

  if session.failed?
    1
  elsif session.skipped?
    fail_deactivated_tests ? 2 : 0
  else
    0
  end
end
fixture(session=nil, receiver: nil) click to toggle source
# File lib/test_bench/test_bench.rb, line 50
def self.fixture(session=nil, receiver: nil)
  session ||= self.session
  receiver ||= Object.new

  receiver.extend(Fixture)
  receiver.extend(DeactivationVariants)

  receiver.test_session = session

  receiver
end
output() click to toggle source
# File lib/test_bench/test_bench.rb, line 13
def self.output
  session.output
end
session() click to toggle source
# File lib/test_bench/test_bench.rb, line 2
def self.session
  @session ||= build_session.tap do |session|
    at_exit do
      exit_code = exit_code(session)

      exit(exit_code) unless exit_code.zero?
    end
  end
end
session_error_policy(abort_on_error=nil) click to toggle source
# File lib/test_bench/test_bench.rb, line 69
def self.session_error_policy(abort_on_error=nil)
  abort_on_error = Defaults.abort_on_error if abort_on_error.nil?

  if abort_on_error
    :abort
  else
    :rescue
  end
end
set_output(output, session: nil) click to toggle source
# File lib/test_bench/test_bench.rb, line 17
def self.set_output(output, session: nil)
  session ||= self.session

  if output.is_a?(Array)
    output = Fixture::Output::Multiple.build(*output)
  end

  session.output = output
end