Skip to content

ChangeLog for PHPUnit 3.7

sebastianbergmann edited this page Nov 10, 2014 · 4 revisions

Changes in PHPUnit

PHPUnit 3.7.38

  • Fixed #1472: assertEqualXMLStructure() modifies the tested elements

PHPUnit 3.7.37

  • Fixed #1193: Problem with "headers already sent" in isolated tests when using PHPUnit from PHAR

PHPUnit 3.7.36

  • Fixed #1143: The state in mocked static objects is not cleaned up when an exception is caught by PHPUnit
  • Fixed #1231: Version information is printed to stdout instead of stderr when --stderr is used

PHPUnit 3.7.35

  • PHPUnit now prints a message that the PEAR installation method is no longer supported

PHPUnit 3.7.34

  • New release of PHPUnit with updated Composer dependencies

PHPUnit 3.7.33

  • Fixed #1159: @require annotation does not work with \r\n line ending

PHPUnit 3.7.32

PHPUnit 3.7.31

  • New release of PHPUnit as PHAR with updated dependencies

PHPUnit 3.7.30

  • Fixed #1125: Prevent side effect when using PHPUnit_Framework_Constraint_Count on Iterator instances
  • Upgraded bundled version of PHP_CodeCoverage in the PHP Archive (PHAR) distribution of PHPUnit
  • Upgraded bundled version of Text_Template in the PHP Archive (PHAR) distribution of PHPUnit

PHPUnit 3.7.29

  • Fixed #748: Fatal error in JSON test listener when markTestSkipped() is used in setUpBeforeClass()
  • Fixed #1031: Warning when mbstring.func_overload is enabled
  • Fixed #1048: Implementation of PHPUnit_Framework_Constraint_ArrayHasKey is incompatible with HHVM
  • Fixed #1051: Implementation of PHPUnit_Util_PHP is incompatible with HHVM

PHPUnit 3.7.28

  • Fixed #1004: Stubbing/Mocking does not work in process isolation when using PHPUnit PHAR
  • Fixed #1021: Backtrace on Windows (phar) not being filtered properly

PHPUnit 3.7.27

  • Fixed #999: phpunit.phar is missing resources (such as templates)

PHPUnit 3.7.26

  • Upgraded bundled version of PHP_TokenStream in the PHP Archive (PHAR) distribution of PHPUnit.

PHPUnit 3.7.25

  • Upgraded bundled versions of PHP_CodeCoverage and PHPUnit_Selenium in the PHP Archive (PHAR) distribution of PHPUnit.

PHPUnit 3.7.24

  • Fixed #982: Process Isolation does not work when using PHPUnit from a PHP Archive (PHAR)

PHPUnit 3.7.23

  • Dependencies updated to latest version in PHP Archive (PHAR) distribution.

PHPUnit 3.7.22

  • Fixed #948: Do not die on binary output with JSON logging.
  • Implemented a workaround for PHP bug #63055.
  • It is now possible to use generators as data providers.

PHPUnit 3.7.21

  • Fixed #277: Account for auto-globals-jit when setting $_ENV and $_SERVER variables in the xml config.
  • Fixed #924: PHPUnit depends on packages that broke backwards compatibility.

PHPUnit 3.7.20

  • Fixed #883: Stand-alone functions logicalAnd(), logicalOr(), and logicalXor() did not work.
  • Fixed #889: Suppress open_basedir warnings while searching for the composer autoloader.
  • Fixed #890: Correctly parse single-line @expectedException annotations.
  • Fixed #891: Better messages when JSON-related assertions receive invalid JSON.
  • Fixed #896: Use the proper toString() method inside PHPUnit_Framework_TestFailure::toString().
  • Fixed #902: Allow symfony/yaml >=2.0,<3.0
  • Fixed #908: Don't rely on composer to set up the include_path for ErrorHandler.php.

PHPUnit 3.7.19

  • Fixed #763: assertTag() fails to match content in CDATA sections.
  • Fixed #860: Version requirement for symfony/yaml is too restrictive.
  • Fixed #863: Number of tests to run calculated incorrectly when --repeat is used.

PHPUnit 3.7.18

  • Make sure the autoloader for PEAR-based installation is not used when PHPUnit is installed via Composer.

PHPUnit 3.7.17

  • Make sure the autoloader for PEAR-based installation is not used when PHPUnit is installed via Composer.

PHPUnit 3.7.16

  • Make sure the autoloader for PEAR-based installation is not used when PHPUnit is installed via Composer.

PHPUnit 3.7.15

  • Fixed #823: Process isolation not working on windows if there are spaces in path to php.exe
  • Fixed #830: PHP notice in PHPUnit_Util_XML

PHPUnit 3.7.14

  • Fixed #751: NaN is not equal to NaN now to match PHPs behavior
  • Fixed #796 in #799: Mocking a method with a reference to an object made argument matches fail.

PHPUnit 3.7.13

  • Fixed #710: Ensure isolation tests display errors so they can be handled by the test runner.
  • Fixed sebastianbergmann/phpunit-mock-objects#81.
  • Fixed an issue where PHP complained about an undeclared $time variable when running tests in strict mode.

PHPUnit 3.7.12

  • Fixed version number.

PHPUnit 3.7.11

  • Fixed installation issue for Symfony/Yaml.

PHPUnit 3.7.10

  • Fixed #709: assertJsonStringEqualsJsonFile didn't work with json arrays.
  • Fixed #734: phpunit.phar cannot be executed if it is renamed.
  • Fixed error message when assertArrayHasKey() and assertArrayNotHasKey() are invoked with wrong arguments.

PHPUnit 3.7.9

  • Fixed #708: JSON matcher source files missing from package.xml.

PHPUnit 3.7.8

  • Fixed #688: Invoke autoloader when checking for Symfony\Component\Yaml\Dumper.

PHPUnit 3.7.7

  • Added missing file to PEAR package.

PHPUnit 3.7.6

  • Fixed #682: phpunit script appears in stacktrace (when PHPUnit is installed through Composer).

PHPUnit 3.7.5

  • PHPUnit now uses $_SERVER['SCRIPT_NAME'] instead of $_SERVER['_'] to filter the phpunit script (as the latter is not set when PHPUnit is invoked from Apache Ant's <exec> task, for instance).

PHPUnit 3.7.4

  • Fixed #682: phpunit script appears in stacktrace.

PHPUnit 3.7.3

  • Improvements to running PHPUnit from a PHAR.

PHPUnit 3.7.2

  • Implemented #656: Always clean up mock objects (and free up memory).
  • Implemented #664: Do not rely on autoloader class map to populate blacklist.
  • Added the addUncoveredFilesFromWhitelist configuration setting back in.
  • Fixed #655: Reverted 'More than two positional arguments provided' check as it turned out to be a BC issue.
  • Disable token caching (in PHP_TokenStream, used by PHP_CodeCoverage) by default (to reduce memory footprint).

PHPUnit 3.7.1

  • The version number is now displayed when using PHPUnit from a Composer install or Git checkout.

PHPUnit 3.7.0

  • 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() and assertArrayNotHasKey() 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 existing assertXml* functions.
  • Implemented #492: PHPUnit now provides a configuration.xsd schema file at http://schema.phpunit.de/configuration.xsd that can be used to validate your phpunit.xml and phpunit.xml.dist configuration files.
  • Implemented #495: Added --testsuite argument, allowing to filter files/directory by parent testsuite name attribute.
  • 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 like Classname::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 #561: When an @expectedException fails it now shows the message of the thrown exception to ease debugging.
  • Implemented #586: Improved reporting of exceptions by printing out the previous exception names, messages and traces.
  • 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 #322 #320 thanks to #607: Commandline option now override group/exclude settings in phpunit.xml
  • Fixed #440: Possible crash when using --process-isolation with PHP 5.3 and detect_unicode=on.
  • Fixed #523: assertAttributeEquals() now works with classes extending internal classes like ArrayIterator.
  • Fixed #581: Generating a diffs could add extra newlines in Windows.
  • Fixed #636, #631: Using Selenium in combination with autoloaders that die() or produce errors when a class cannot be found caused broken tests.
  • If no tests where executed, for example because of a --filter, PHPUnit now prints a "No tests executed" warning instead of "OK (0 tests...)".
  • 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 the phpunit-skelgen command of the PHPUnit_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.7 (or later) is highly recommended.

Changes in PHPUnit_MockObject

  • Implemented #47: Make cloning of arguments passed to mocked methods optional.
  • Implemented #84: getMockFromWsdl() now works with namespaces.
  • Fixed #90: Mocks with a fixed class name could only be created once.

Changes in PHP_CodeCoverage

  • The HTML report has been redesigned.
  • The new @coversDefaultClass annotation enables short @covers annotations when working with long class names or namespaces.
  • The new @coversNothing annotation can be used so tests do not record any code coverage. Useful for integration testing.
  • When processUncoveredFilesFromWhitelist=FALSE is set then files that are whitelisted but not covered by a single test are now included in the code coverage but with all lines, including those that are not executable, counted as not executed.
  • PHP_CodeCoverage 1.2 is only supported on PHP 5.3.3 (or later) and PHP 5.4.7 (or later) is highly recommended.
Something went wrong with that request. Please try again.