module Beaker::DSL::Outcomes

This module includes dsl helpers for setting the state of a test case. They do not need inclusion if using third party test runner. The Exception classes that they raise however should be defined as other DSL helpers will raise them as needed. See individual DSL modules for their specific dependencies. A class that mixes in this module must have a method logger which will yield an object that responds to notify and warn. NOTE: the interface to logger may change shortly and {Beaker::Logger} should be consulted for the appropriate interface.

Simply these methods log a message and raise the appropriate Exception The exceptions are are caught by {Beaker::TestCase} and are designed to allow some degree of freedom from the individual third party test runners that could be used.

Public Instance Methods

export(data) click to toggle source

populate a TestCase’s @exports[] with structured_data

@param [Hash,Array<Hash>] data The data to export

# File lib/beaker/dsl/outcomes.rb, line 81
def export(data)
  @exports << data
end
fail_test(msg = nil) click to toggle source

Raises FailTest Exception and logs an error message

@param [String] msg An optional message to log @raise [FailTest]

# File lib/beaker/dsl/outcomes.rb, line 38
def fail_test msg = nil
  message = formatted_message(msg, 'Failed')
  logger.warn([message, logger.pretty_backtrace].join("\n"))

  raise(FailTest, message)
end
formatted_message(message, default_str) click to toggle source

Formats an optional message or self appended by a state, either bracketted in newlines

@param [String, nil] message The message (or nil) to format @param [String] default_str The string to be appended to self if

message is nil

@return [String] A prettier string with helpful info @!visibility private

# File lib/beaker/dsl/outcomes.rb, line 94
def formatted_message(message, default_str)
  msg = message ? "\n#{message}\n" : "\n#{self} #{default_str}.\n"
  return msg
end
pass_test(msg = nil) click to toggle source

Raises PassTest Exception and logs a message

@param [String] msg An optional message to log @raise [PassTest]

# File lib/beaker/dsl/outcomes.rb, line 49
def pass_test msg = nil
  message = formatted_message(msg, 'Passed')
  logger.notify(message)

  raise(PassTest, message)
end
pending_test(msg = nil) click to toggle source

Raises PendingTest Exception and logs an error message

@param [String] msg An optional message to log @raise [PendingTest]

# File lib/beaker/dsl/outcomes.rb, line 60
def pending_test msg = nil
  message = formatted_message(msg, 'is Pending')
  logger.warn(message)

  raise(PendingTest, message)
end
skip_test(msg = nil) click to toggle source

Raises SkipTest Exception and logs a message

@param [String] msg An optional message to log @raise [SkipTest]

# File lib/beaker/dsl/outcomes.rb, line 71
def skip_test msg = nil
  message = formatted_message(msg, 'was Skipped')
  logger.notify(message)

  raise(SkipTest, message)
end