Responsible for starting and finalizing test sessions.

Since these session span across multiple requests, session information is persisted
in a file. This file is stored in the webroot by default, and the test session
is considered "in progress" as long as this file exists.
This allows for cross-request, cross-client sharing of the same testsession,
for example: Behat CLI starts a testsession, then opens a web browser which
makes a separate request picking up the same testsession.
An environment can have an optional identifier (), which allows
multiple environments to exist at the same time in the same webroot.
This enables parallel testing with (mostly) isolated state.
For a valid test session to exist, this needs to contain at least:
- database: The alternate database name that is being used for this test session (e.g. ss_tmpdb_1234567)
It can optionally contain other details that should be passed through many separate requests:
- datetime: Mocked SS_DateTime ()
- mailer: Mocked Email sender ()
- stubfile: Path to PHP stub file for setup ()
Extensions of TestSessionEnvironment can add extra fields in here to be saved and restored on each request.
See for default information stored in the test session.