For example, trait Suite and object Runner use SuiteCompleted to report
that the execute method of a Suite
has returned normally (without throwing a RuntimeException).

To create instances of this class you may
use one of the factory methods provided in its companion object. For example, given a
report function named report, you could fire a SuiteCompleted event like this:

The suite class name parameter is optional, because suites in ScalaTest are an abstraction that
need not necessarily correspond to one class. Nevertheless, it most cases each suite will correspond
to a class, and when it does, the fully qualified name of that class should be reported by passing a
Some for suiteClassName. One use for this bit of information is JUnit integration,
because the "name" provided to a JUnit org.junit.runner.Description appears to usually include
a fully qualified class name by convention.

ordinal

an Ordinal that can be used to place this event in order in the context of
other events reported during the same run

suiteName

the name of the suite containing the suite that has completed

suiteClassName

an optional fully qualifed Suite class name containing the suite that has completed

duration

an optional amount of time, in milliseconds, that was required to execute the suite that has completed

formatter

an optional formatter that provides extra information that can be used by reporters in determining
how to present this event to the user

rerunner

an optional Rerunner that can be used to rerun the suite that has completed (if None
is passed, the suite cannot be rerun)

payload

an optional object that can be used to pass custom information to the reporter about the SuiteCompleted event

threadName

a name for the Thread about whose activity this event was reported

timeStamp

a Long indicating the time this event was reported, expressed in terms of the
number of milliseconds since the standard base time known as "the epoch": January 1, 1970, 00:00:00 GMT