Sha256: 85c596e21c5d6ab426ce688d464e81417e611efcab404df20bba9b2c2105777d

Contents?: true

Size: 933 Bytes

Versions: 2

Compression:

Stored size: 933 Bytes

Contents

require 'assert/setup'
require 'assert/runner'

module Assert

  # a flag to know if at_exit hook has been installed already
  @@at_exit_installed ||= false

  class << self

    # install at_exit hook (if needed) (runs at process exit)
    # this ensures the test suite won't run unitl all test files are loaded
    # (this is essentially a direct rip from Minitest)
    def autorun
      at_exit do
        # don't run if there was an exception
        next if $!

        # the order here is important. The at_exit handler must be
        # installed before anyone else gets a chance to install their
        # own, that way we can be assured that our exit will be last
        # to run (at_exit stacks).

        exit_code = nil
        at_exit { exit(false) if exit_code && exit_code != 0 }
        Runner.new(self.suite, self.view).run
      end unless @@at_exit_installed
      @@at_exit_installed = true
    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
assert-0.3.0 lib/assert/autorun.rb
assert-0.2.1 lib/assert/autorun.rb