Module: Elasticsearch::Extensions::Test::StartupShutdown

Defined in:
lib/elasticsearch/extensions/test/startup_shutdown.rb

Overview

Startup/shutdown support for test suites

Example:

class MyTest < Test::Unit::TestCase
  extend Elasticsearch::Extensions::Test::StartupShutdown

  startup  { puts "Suite starting up..." }
  shutdown { puts "Suite shutting down..." }
end

*** IMPORTANT NOTE: **********************************************************

You have to register the handler for shutdown before requiring ‘test/unit’:

# File: test_helper.rb
at_exit { MyTest.__run_at_exit_hooks }
require 'test/unit'

The API follows Test::Unit 2.0 <github.com/test-unit/test-unit/blob/master/lib/test/unit/testcase.rb>

Constant Summary collapse

@@started =
false

Instance Method Summary collapse

Instance Method Details

#__run_at_exit_hooksObject



44
45
46
47
48
49
50
# File 'lib/elasticsearch/extensions/test/startup_shutdown.rb', line 44

def __run_at_exit_hooks
  return unless started?
  STDERR.puts ANSI.faint("Running at_exit hooks...")
  puts ANSI.faint('-'*80)
  @@shutdown_blocks.each { |b| b.call }
  puts ANSI.faint('-'*80)
end

#shutdown(&block) ⇒ Object



36
37
38
# File 'lib/elasticsearch/extensions/test/startup_shutdown.rb', line 36

def shutdown &block
  @@shutdown_blocks << block if block_given?
end

#started?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/elasticsearch/extensions/test/startup_shutdown.rb', line 40

def started?
  !! @@started
end

#startup {|block| ... } ⇒ Object

Yields:

  • (block)


30
31
32
33
34
# File 'lib/elasticsearch/extensions/test/startup_shutdown.rb', line 30

def startup &block
  return if started?
  @@started = true
  yield block if block_given?
end