Build/Test Tools: Update PHPUnit configuration for PHPUnit 9.5.10/8.5.21+.
Since PHPUnit 9.5.10 and 8.5.21, PHP deprecations are no longer converted to exceptions by default (convertDeprecationsToExceptions="true"
can be configured to enable this).
Reference: Do not convert PHP deprecations to exceptions by default; PHPUnit 9.5.10 changelog.
Let's unpack this:
Previously (PHPUnit < 9.5.10/8.5.21), if PHPUnit would encounter a PHP native deprecation notice, it would:
- Show a test which causes a deprecation notice to be thrown as "errored",
- Show the first deprecation notice it encountered and
- PHPUnit would exit with a non-0 exit code (2), which will fail a CI build.
As of PHPUnit 9.5.10/8.5.21, if PHPUnit encounters a PHP native deprecation notice, it will no longer do so. Instead PHPUnit will:
- Show a test which causes a PHP deprecation notice to be thrown as "risky",
- Show the all deprecation notices it encountered and
- PHPUnit will exit with a 0 exit code, which will show a CI build as passing.
This commit reverts PHPUnit to the previous behaviour by adding convertDeprecationsToExceptions="true"
to the PHPUnit configuration. It also adds the other related directives for consistency.
Props jrf, netweb, costdev, SergeyBiryukov.
See #54183.