CompositeStatus

final class CompositeStatus(statuses: Set[Status]) extends Status with Serializable

Composite Status that aggregates its completion and failed states of set of other Statuses passed to its constructor.

Value parameters:
statuses

the Statuses out of which this status is composed.

trait Serializable
trait Status
class Object
trait Matchable
class Any

Value members

Concrete methods

def isCompleted(): Boolean

Non-blocking call to check if the test or suite run is completed, returns true if all composite Statuses have completed, false otherwise. You can use this to poll the run status.

Non-blocking call to check if the test or suite run is completed, returns true if all composite Statuses have completed, false otherwise. You can use this to poll the run status.

Returns:

true if all composite Statuses have completed, false otherwise.

override def unreportedException: Option[Throwable]

An optional exception that has not been reported to the reporter for this run.

An optional exception that has not been reported to the reporter for this run.

This will be defined if any of the composite Statuss (passed to this Status's constructor) has a defined unreportedException. If more than one composite Status has a defined unreportedException, one of them (not specified) will be reported by this method and the others will have their stack traces printed to standard output.

Definition Classes
def whenCompleted(f: Try[Boolean] => Unit): Unit

Registers the passed function to be executed when this status completes.

Registers the passed function to be executed when this status completes.

You may register multiple functions, which on completion will be executed in an undefined order.

Inherited methods

final def thenRun(f: => Status): Status

Registers a Status-producing by-name function to execute after this Status completes, returning a Status that mirrors the Status returned by the by-name.

Registers a Status-producing by-name function to execute after this Status completes, returning a Status that mirrors the Status returned by the by-name.

The Status returned by this method will complete when the status produced by the Status produced by the passed-by name completes. The returned Status will complete with the same succeeds and unreportedException values. But unlike the Status produced by the by-name, the returned Status will be available immediately.

If the by-name function passed to this method completes abruptly with a non-run-aborting exception, that exception will be caught and installed as the unreportedException on the Status returned by this method. The Status returned by this method will then complete. The thread that attempted to evaluate the by-name function will be allowed to continue (i.e., the non-run-aborting exception will not be rethrown on that thread).

If the by-name function passed to this method completes abruptly with a run-aborting exception, such as StackOverflowError, that exception will be caught and a new java.util.concurrent.ExecutionException that contains the run-aborting exception as its cause will be installed as the unreportedException on the Status returned by this method. The Status returned by this method will then complete. The original run-aborting exception will then be rethrown on the thread that attempted to evaluate the by-name function.

If an unreported exception is installed on this Status, the passed by-name function will still be executed.

Internally, ScalaTest uses this method in async styles to ensure that by default, each subsequent test in an async-style suite begins execution only after the previous test has completed. This method is not used if ParallelTestExection is mixed into an async style. Instead, tests are allowed to begin execution concurrently.

Value parameters:
status

A Status-producing by-name function to invoke after this Status has completed.

Returns:

a Status that represents the status of executing the by-name function passed to this method.

Inherited from:
Status
final def toFuture: Future[Boolean]

Converts this Status to a Future[Boolean] where Success(true) means no tests failed and suites aborted, Success(false), means at least one test failed or one suite aborted and any thrown exception was was reported to the Reporter via a ScalaTest event, Failure(unreportedException) means an exception, unreportedException, was thrown that was not reported to the Reporter via a ScalaTest event.

Converts this Status to a Future[Boolean] where Success(true) means no tests failed and suites aborted, Success(false), means at least one test failed or one suite aborted and any thrown exception was was reported to the Reporter via a ScalaTest event, Failure(unreportedException) means an exception, unreportedException, was thrown that was not reported to the Reporter via a ScalaTest event.

Returns:

a Future[Boolean] representing this Status.

Inherited from:
Status
final def withAfterEffect(f: => Unit): Status

Registers a by-name function (producing an optional exception) to execute after this Status completes.

Registers a by-name function (producing an optional exception) to execute after this Status completes.

If the by-name function passed to this method completes abruptly with a non-run-aborting exception, that exception will be caught and installed as the unreportedException on the Status returned by this method. The Status returned by this method will then complete. The thread that attempted to evaluate the by-name function will be allowed to continue (i.e., the non-run-aborting exception will not be rethrown on that thread).

If the by-name function passed to this method completes abruptly with a run-aborting exception, such as StackOverflowError, that exception will be caught and a new java.util.concurrent.ExecutionException that contains the run-aborting exception as its cause will be installed as the unreportedException on the Status returned by this method. The Status returned by this method will then complete. The original run-aborting exception will then be rethrown on the thread that attempted to evaluate the by-name function.

If an unreported exception is installed on this Status, the passed by-name function will not be executed. Instead, the same unreported exception will be installed on the Status returned by this method.

Internally, ScalaTest uses this method in traits BeforeAndAfter, BeforeAndAfterEach, and BeforeAndAfterEachTestData to ensure "after" code is executed after the relevant test has completed, and in traits BeforeAndAfterAll and BeforeAndAfterAllConfigMap to ensure "after" code is executed after the relevant tests and nested suites have completed.

Value parameters:
f

A by-name function to invoke after this Status has completed.

Returns:

a Status that represents this Status, modified by any exception thrown by the passed by-name function.

Inherited from:
Status