This is the list of changes for the PHPUnit 3.7 release series.
- Implemented #200: When using process-isolation don't die silently when unserializing the test result fails.
- Implemented #206: Added a
callback
constraint that is useful for making complex assertions. - Implemented #207: Restore current working directory if is changed by a test case.
- Implemented #208: Added --test-suffix that allows specifying which filename suffixes are recognised by PHPUnit.
- Implemented #295:
assertArrayHasKey()
andassertArrayNotHasKey()
now work with objects that implement ArrayAccess. - Implemented #333: Improved reporting when there are unused CLI arguments to avoid misconceptions.
- Implemented #377: Show messages and stracktraces in JSON output for skipped and incomplete tests.
- Implemented #424: Added
assertJson*
functions that work like the existingassertXml*
functions. - Implemented #492: PHPUnit now provides a
configuration.xsd
schema file at http://schema.phpunit.de/configuration.xsd that can be used to validate yourphpunit.xml
andphpunit.xml.dist
configuration files. - Implemented #504: Expanded the
@requires
annotation to allow for checking the existence of functions and extensions using multiple@requires function name
statements. - Implemented #508 #86:
@expectedExceptionCode
and@expectedExceptionMessage
can now use constants likeClassname::CONST
as their parameters. They will get evaluated if the class constant exists and used for comparison so test authors can avoid duplication. - Implemented #512: Test listeners now trigger one autoload call instead of being silently ignored when the class was not loaded.
- Implemented #514: Failed
assertStringMatchesFormat()
calls now produce a better readable diff by only marking lines as different that don't match the format specifiers. - Implemented #515: Added
assertContainsOnlyInstancesOf()
to help checking Collection objects and arrays with a descriptive assertion. - Implemented #516: When an
@expectedException
fails it now shows the message of the thrown exception to ease debugging. - The
@requires
annotation can now be used on the class DocBlock. Required versions can be overridden in the methods annotation, required functions and extensions will be merged. - Added
processUncoveredFilesFromWhitelist
configuration setting. When enabled, uncovered whitelisted files are processed to properly calculate the number of executable lines. - Fixed #440: Possible crash when using
--process-isolation
with PHP 5.3 anddetect_unicode=on
. - Fixed #523:
assertAttributeEquals()
now works with classes extending internal classes likeArrayIterator
. - It is possible again to expect the generic
Exception
class. - Removed
addUncoveredFilesFromWhitelist
configuration setting. - Removed deprecated
--skeleton-class
and--skeleton-test
switches. The functionality is now provided by thephpunit-skel
command of thePHPUnit_SkeletonGenerator
package. - Removed deprecated
PHPUnit_Extensions_OutputTestCase
class. - PHPUnit 3.7 is only supported on PHP 5.3.3 (or later) and PHP 5.4.0 (or later) is highly recommended.