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.

# 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