PHPUnit can perform additional checks while it executes the tests. In
addition to the fine-grained control over the various strict mode checks
(see below) you may use the --strict commandline option
or set strict="true" in PHPUnit's XML configuration file
to enable all of them.
PHPUnit can be strict about tests that do not test anything. This check
can be enabled by using the --report-useless-tests
option on the commandline or by setting
beStrictAboutTestsThatDoNotTestAnything="true" in
PHPUnit's XML configuration file.
A test that that does not perform an assertion will be marked as risky
when this check is enabled. Expectations on mock objects or annotations
such as @expectedException count as an assertion.
PHPUnit can be strict about unintentionally covered code. This check
can be enabled by using the --strict-coverage option on
the commandline or by setting
checkForUnintentionallyCoveredCode="true" in PHPUnit's
XML configuration file.
A test that is annotated with @covers and executes code that
is not listed using a @covers or @uses
annotation will be marked as risky when this check is enabled.
PHPUnit can be strict about output during tests. This check can be enabled
by using the --disallow-test-output option on the
commandline or by setting
beStrictAboutOutputDuringTests="true" in PHPUnit's XML
configuration file.
A test that emits output, for instance by invoking print in
either the test code or the tested code, will be marked as risky when this
check is enabled.
A time limit can be enforced for the execution of a test if the
PHP_Invoker package is installed and the
pcntl extension is available. The enforcing of this
time limit can be enabled by using the
--enforce-time-limit option on the commandline or by
setting beStrictAboutTestSize="true" in PHPUnit's XML
configuration file.
A test annotated with @large will fail if it takes
longer than 60 seconds to execute. This timeout is configurable via the
timeoutForLargeTests attribute in the XML
configuration file.
A test annotated with @medium will fail if it takes
longer than 10 seconds to execute. This timeout is configurable via the
timeoutForMediumTests attribute in the XML
configuration file.
A test that is not annotated with @medium or
@large will be treated as if it were annotated with
@small. A small test will fail if it takes longer than
1 second to execute. This timeout is configurable via the
timeoutForSmallTests attribute in the XML configuration
file.