org.scalatest

Reporter

trait Reporter extends (Event) ⇒ Unit

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:

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.

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 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.

known subclasses: ResourcefulReporter
Go to: companion

Inherits

  1. Function1
  2. AnyRef
  3. Any

Value Members

  1. def andThen[A](g: (Unit) ⇒ A): (Event) ⇒ A

  2. def apply(event: Event): Unit

    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.

    event

    the event being reported

    attributes: abstract
    Go to: companion
  3. def compose[A](g: (A) ⇒ Event): (A) ⇒ Unit

  4. def equals(arg0: Any): Boolean

    This method is used to compare the receiver object (this) with the argument object (arg0) for equivalence

    This method is used to compare the receiver object (this) with the argument object (arg0) for equivalence.

    The default implementations of this method is an equivalence relation:

    • It is reflexive: for any instance x of type Any, x.equals(x) should return true.
    • It is symmetric: for any instances x and y of type Any, x.equals(y) should return true if and only if y.equals(x) returns true.
    • It is transitive: for any instances x, y, and z of type AnyRef if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.

    If you override this method, you should verify that your implementation remains an equivalence relation. Additionally, when overriding this method it is often necessary to override hashCode to ensure that objects that are "equal" (o1.equals(o2) returns true) hash to the same Int (o1.hashCode.equals(o2.hashCode)).

    arg0

    the object to compare against this object for equality.

    returns

    true if the receiver object is equivalent to the argument; false otherwise.

    definition classes: AnyRef ⇐ Any
    Go to: companion
  5. def hashCode(): Int

    Returns a hash code value for the object

    Returns a hash code value for the object.

    The default hashing algorithm is platform dependent.

    Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)) yet not be equal (o1.equals(o2) returns false). A degenerate implementation could always return 0. However, it is required that if two objects are equal (o1.equals(o2) returns true) that they have identical hash codes (o1.hashCode.equals(o2.hashCode)). Therefore, when overriding this method, be sure to verify that the behavior is consistent with the equals method.

    definition classes: AnyRef ⇐ Any
    Go to: companion
  6. def toString(): String

    Returns a string representation of the object

    Returns a string representation of the object.

    The default representation is platform dependent.

    definition classes: Function1 ⇐ AnyRef ⇐ Any
    Go to: companion