class Protest::Report

Public Class Methods

on(event, &block) click to toggle source

Define an event handler for your report. The different events fired in a report's life cycle are:

:start

Fired by the runner when starting the whole test suite.

:enter

Fired by the runner when starting a particular test case. It will get the test case as an argument.

:test

Fired by a test before it starts running. It will get the instance of TestCase for the given test as an argument.

:assertion

Fired by a test each time an assertion is run.

:pass

Fired by a test after it runs successfully without errors. It will get an instance of PassedTest as an argument.

:pending

Fired by a test which doesn't provide a test block or which calls Protest::TestCase#pending. It will get an instance of PendingTest as an argument.

:failure

Fired by a test in which an assertion failed. It will get an instance of FailedTest as an argument.

:error

Fired by a test where an uncaught exception was found. It will get an instance of ErroredTest as an argument.

:exit

Fired by the runner each time a test case finishes. It will take the test case as an argument.

:end

Fired by the runner at the end of the whole test suite.

The event handler will receive the report as a first argument, plus any arguments documented above (depending on the event). It will also ensure that any handler for the same event declared on an ancestor class is run.

Calls superclass method
# File lib/protest/report.rb, line 28
def self.on(event, &block)
  define_method(:"on_#{event}") do |*args|
    begin
      super(*args)
    rescue NoMethodError
    end

    block.call(self, *args)
  end
end

Public Instance Methods

add_assertion() click to toggle source

Log an assertion was run (whether it succeeded or failed.)

# File lib/protest/report.rb, line 97
def add_assertion
  @assertions ||= 0
  @assertions += 1
end
assertions() click to toggle source

Number of assertions run during the report.

# File lib/protest/report.rb, line 103
def assertions
  @assertions || 0
end
errors() click to toggle source

List all the tests (as ErroredTest instances) that raised an unrescued exception.

# File lib/protest/report.rb, line 86
def errors
  @errors ||= []
end
failures() click to toggle source

List all the tests (as FailedTest instances) that failed an assertion.

# File lib/protest/report.rb, line 80
def failures
  @failures ||= []
end
failures_and_errors() click to toggle source

Aggregated and ordered list of tests that either failed an assertion or raised an unrescued exception. Useful for displaying back to the user.

# File lib/protest/report.rb, line 92
def failures_and_errors
  @failures_and_errors ||= []
end
passes() click to toggle source

List all the tests (as PassedTest instances) that passed.

# File lib/protest/report.rb, line 75
def passes
  @passes ||= []
end
pendings() click to toggle source

List all the tests (as PendingTest instances) that were pending.

# File lib/protest/report.rb, line 70
def pendings
  @pendings ||= []
end
tests() click to toggle source
# File lib/protest/report.rb, line 107
def tests
  @tests ||= []
end
time_elapsed() click to toggle source

Seconds taken since the test suite started running

# File lib/protest/report.rb, line 117
def time_elapsed
  Time.now - @started_at
end
total_tests() click to toggle source

Amount ot tests run (whether passed, pending, failed, or errored.)

# File lib/protest/report.rb, line 112
def total_tests
  tests.size
end