Trait whose instances collect the results of a running suite of tests and presents those results in some way to the user. Instances of this trait can be called "report functions" or "reporters."
Reporters receive test results via thirteen events. Each event is fired to pass a particular kind of information to the reporter. The events are:
RunStarting
TestStarting
TestSucceeded
TestFailed
TestIgnored
TestPending
SuiteStarting
SuiteCompleted
SuiteAborted
InfoProvided
RunStopped
RunAborted
RunCompleted
Reporters may be implemented such that they only present some of the reported events to the user. For example, you could
define a reporter class that doesn nothing in response to SuiteStarting
events.
Such a class would always ignore SuiteStarting
events.
The term test as used in the TestStarting
, TestSucceeded
,
and TestFailed
event names
is defined abstractly to enable a wide range of test implementations.
Trait Suite
fires TestStarting
to indicate it is about to invoke one
of its test methods, TestSucceeded
to indicate a test method returned normally,
and TestFailed
to indicate a test method completed abruptly with an exception.
Although the execution of a Suite
's test methods will likely be a common event
reported via the
TestStarting
, TestSucceeded
, and TestFailed
methods, because
of the abstract definition of “test” used by the
the event classes, these events are not limited to this use. Information about any conceptual test
may be reported via the TestStarting
, TestSucceeded
, and
TestFailed
events.
Likewise, the term suite as used in the SuiteStarting
, SuiteAborted
,
and SuiteCompleted
event names
is defined abstractly to enable a wide range of suite implementations.
Object Runner
fires SuiteStarting
to indicate it is about to invoke
run
on a
Suite
, SuiteCompleted
to indicate a Suite
's
run
method returned normally,
and SuiteAborted
to indicate a Suite
's run
method completed abruptly with an exception.
Similarly, class Suite
fires SuiteStarting
to indicate it is about to invoke
run
on a
nested Suite
, SuiteCompleted
to indicate a nested Suite
's
run
method returned normally,
and SuiteAborted
to indicate a nested Suite
's run
method completed abruptly with an exception.
Although the execution of a Suite
's run
method will likely be a
common event reported via the
SuiteStarting
, SuiteAborted
, and SuiteCompleted
events, because
of the abstract definition of "suite" used by the
event classes, these events are not limited to this use. Information about any conceptual suite
may be reported via the SuiteStarting
, SuiteAborted
, and
SuiteCompleted
events.
You can create classes that extend ReportFunction
to report test results in custom ways, and to
report custom information passed as an event "payload." For more information on the latter
use case, see the Extensibility section of the Event
documentation.
Reporter classes can handle events in any manner, including doing nothing.
For convenience, trait ReporterFunction
includes a default implentation of apply
that does nothing.
Invoked to report an event that subclasses may wish to report in some way to the user.
Invoked to report an event that subclasses may wish to report in some way to the user.
the event being reported
Returns a string representation of the object.
Returns a string representation of the object.
The default representation is platform dependent.
a string representation of the object.
Trait whose instances collect the results of a running suite of tests and presents those results in some way to the user. Instances of this trait can be called "report functions" or "reporters."
Reporters receive test results via thirteen events. Each event is fired to pass a particular kind of information to the reporter. The events are:
RunStarting
TestStarting
TestSucceeded
TestFailed
TestIgnored
TestPending
SuiteStarting
SuiteCompleted
SuiteAborted
InfoProvided
RunStopped
RunAborted
RunCompleted
Reporters may be implemented such that they only present some of the reported events to the user. For example, you could define a reporter class that doesn nothing in response to
SuiteStarting
events. Such a class would always ignoreSuiteStarting
events.The term test as used in the
TestStarting
,TestSucceeded
, andTestFailed
event names is defined abstractly to enable a wide range of test implementations. TraitSuite
firesTestStarting
to indicate it is about to invoke one of its test methods,TestSucceeded
to indicate a test method returned normally, andTestFailed
to indicate a test method completed abruptly with an exception. Although the execution of aSuite
's test methods will likely be a common event reported via theTestStarting
,TestSucceeded
, andTestFailed
methods, because of the abstract definition of “test” used by the the event classes, these events are not limited to this use. Information about any conceptual test may be reported via theTestStarting
,TestSucceeded
, andTestFailed
events.Likewise, the term suite as used in the
SuiteStarting
,SuiteAborted
, andSuiteCompleted
event names is defined abstractly to enable a wide range of suite implementations. ObjectRunner
firesSuiteStarting
to indicate it is about to invokerun
on aSuite
,SuiteCompleted
to indicate aSuite
'srun
method returned normally, andSuiteAborted
to indicate aSuite
'srun
method completed abruptly with an exception. Similarly, classSuite
firesSuiteStarting
to indicate it is about to invokerun
on a nestedSuite
,SuiteCompleted
to indicate a nestedSuite
'srun
method returned normally, andSuiteAborted
to indicate a nestedSuite
'srun
method completed abruptly with an exception. Although the execution of aSuite
'srun
method will likely be a common event reported via theSuiteStarting
,SuiteAborted
, andSuiteCompleted
events, because of the abstract definition of "suite" used by the event classes, these events are not limited to this use. Information about any conceptual suite may be reported via theSuiteStarting
,SuiteAborted
, andSuiteCompleted
events.Extensibility
You can create classes that extend
ReportFunction
to report test results in custom ways, and to report custom information passed as an event "payload." For more information on the latter use case, see the Extensibility section of theEvent
documentation.Reporter classes can handle events in any manner, including doing nothing. For convenience, trait
ReporterFunction
includes a default implentation ofapply
that does nothing.