Module: Beaker::DSL::Outcomes

Included in:
Beaker::DSL
Defined in:
lib/beaker/dsl/outcomes.rb

Overview

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 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 TestCase and are designed to allow some degree of freedom from the individual third party test runners that could be used.

API:

  • dsl

Defined Under Namespace

Classes: FailTest, PassTest, PendingTest, SkipTest

Instance Method Summary collapse

Instance Method Details

#export(data) ⇒ Object

populate a TestCase’s @exports[] with structured_data

Parameters:

  • The data to export

API:

  • dsl



81
82
83
# File 'lib/beaker/dsl/outcomes.rb', line 81

def export(data)
  @exports << data
end

#fail_test(msg = nil) ⇒ Object

Raises FailTest Exception and logs an error message

Raises:

Parameters:

  • (defaults to: nil)

    An optional message to log

API:

  • dsl



38
39
40
41
42
43
# 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

#pass_test(msg = nil) ⇒ Object

Raises PassTest Exception and logs a message

Raises:

Parameters:

  • (defaults to: nil)

    An optional message to log

API:

  • dsl



49
50
51
52
53
54
# 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) ⇒ Object

Raises PendingTest Exception and logs an error message

Raises:

Parameters:

  • (defaults to: nil)

    An optional message to log

API:

  • dsl



60
61
62
63
64
65
# 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) ⇒ Object

Raises SkipTest Exception and logs a message

Raises:

Parameters:

  • (defaults to: nil)

    An optional message to log

API:

  • dsl



71
72
73
74
75
76
# 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