Sha256: f1f1eac22e920d8cf6b48de195e7f5ed70666819493c04fa6b160752f4c77d56

Contents?: true

Size: 918 Bytes

Versions: 4

Compression:

Stored size: 918 Bytes

Contents

require 'assert/setup/all'

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 }
        self.runner.new(self.suite, self.view).run
      end unless @@at_exit_installed
      @@at_exit_installed = true
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
assert-0.7.3 lib/assert/autorun.rb
assert-0.7.2 lib/assert/autorun.rb
assert-0.7.1 lib/assert/autorun.rb
assert-0.7.0 lib/assert/autorun.rb