class Protest::Report
Public Class Methods
Source
# File lib/protest/report.rb, line 9 def initialize(stream=STDOUT) @stream = stream end
Set the stream where the report will be written to. STDOUT by default.
Source
# File lib/protest/report.rb, line 38 def self.on(event, &block) define_method(:"on_#{event}") do |*args| begin super(*args) rescue NoMethodError end block.call(self, *args) end end
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
TestCase#pending
. It will get an instance ofPendingTest
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.
Public Instance Methods
Source
# File lib/protest/report.rb, line 107 def add_assertion @assertions ||= 0 @assertions += 1 end
Log an assertion was run (whether it succeeded or failed.)
Source
# File lib/protest/report.rb, line 113 def assertions @assertions || 0 end
Number of assertions run during the report.
Source
# File lib/protest/report.rb, line 96 def errors @errors ||= [] end
List all the tests (as ErroredTest
instances) that raised an unrescued exception.
Source
# File lib/protest/report.rb, line 90 def failures @failures ||= [] end
List all the tests (as FailedTest
instances) that failed an assertion.
Source
# File lib/protest/report.rb, line 102 def failures_and_errors @failures_and_errors ||= [] end
Aggregated and ordered list of tests that either failed an assertion or raised an unrescued exception. Useful for displaying back to the user.
Source
# File lib/protest/report.rb, line 85 def passes @passes ||= [] end
List all the tests (as PassedTest
instances) that passed.
Source
# File lib/protest/report.rb, line 80 def pendings @pendings ||= [] end
List all the tests (as PendingTest
instances) that were pending.
Source
# File lib/protest/report.rb, line 127 def time_elapsed Time.now - @started_at end
Seconds taken since the test suite started running
Source
# File lib/protest/report.rb, line 122 def total_tests tests.size end
Amount ot tests run (whether passed, pending, failed, or errored.)