Exception that indicates an action that is only allowed during a suite's test registration phase,
such as registering a test to run or ignore, was attempted after registration had already closed.
In suites that register tests as functions, such as FunSuite
and Spec
, tests
are normally registered during construction. Although it is not the usual approach, tests can also
be registered after construction by invoking methods that register tests on the already constructed suite so
long as run
has not been invoked on that suite.
As soon as run
is invoked for the first time, registration of tests is "closed," meaning
that any further attempts to register a test will fail (and result in an instance of this exception class being thrown). This
can happen, for example, if an attempt is made to nest tests, such as in a FunSuite
:
test("this test is fine") {
test("but this nested test is not allowed") {
}
}
This exception encapsulates information about the stack depth at which the line of code that made this attempt resides,
so that information can be presented to the user that makes it quick to find the problem line of code. (In other words,
the user need not scan through the stack trace to find the correct filename and line number of the offending code.)