Skip to content

symfony/phpunit-bridge #53459

Closed
Closed
@MatthewBooth

Description

@MatthewBooth

Symfony version(s) affected

4.4.x

Description

After the update to nikic/php-parser from v4.18.0 to v5.0.0 (arpund 18 hours ago) our unit tests have stopped working. When running bin/phpunit it grabs the correct verison of PHPUnit for our PHP version (PHP 8.1 - PHPUnit 9.5.28).

However, once the composer stage is over, the test start and immediately fails calling:

Call to undefined method PhpParser\ParserFactory::createForHostVersion()

From what I can tell, this function has been available since v4.18.0 and was fine during our last build. However, today, this now fails with the above error.

Additionally, it appears that symfony/phpunit-bridge attempts to install nikic/php-parse:4.14.0

How to reproduce

  1. Using Symfony PHPUnit bridge for Symfony 4.4.x
  2. Run the unit tests ./bin/phpunit
  3. Observe the results (tests should fail before it starts)

Possible Solution

Rollback to 4.18.0 or fix version to 4.18.0

Additional Context

php bin/phpunit         
#No composer.json found in the current directory, showing available packages from packagist.org
Creating a "phpunit/phpunit" project at "./phpunit-9.5-0"
Installing phpunit/phpunit (9.5.28)
Plugins have been disabled.
  - Installing phpunit/phpunit (9.5.28): Extracting archive
Created project in /var/www/html/bin/.phpunit/phpunit-9.5-0
composer.json has been updated
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 28 installs, 0 updates, 0 removals
  - Locking doctrine/instantiator (2.0.0)
  - Locking myclabs/deep-copy (1.11.1)
  - Locking nikic/php-parser (v5.0.0)
  - Locking phar-io/manifest (2.0.3)
  - Locking phar-io/version (3.2.1)
  - Locking phpunit/php-code-coverage (9.2.30)
  - Locking phpunit/php-file-iterator (3.0.6)
  - Locking phpunit/php-invoker (3.1.1)
  - Locking phpunit/php-text-template (2.0.4)
  - Locking phpunit/php-timer (5.0.3)
  - Locking sebastian/cli-parser (1.0.1)
  - Locking sebastian/code-unit (1.0.8)
  - Locking sebastian/code-unit-reverse-lookup (2.0.3)
  - Locking sebastian/comparator (4.0.8)
  - Locking sebastian/complexity (2.0.3)
  - Locking sebastian/diff (4.0.5)
  - Locking sebastian/environment (5.1.5)
  - Locking sebastian/exporter (4.0.5)
  - Locking sebastian/global-state (5.0.6)
  - Locking sebastian/lines-of-code (1.0.4)
  - Locking sebastian/object-enumerator (4.0.4)
  - Locking sebastian/object-reflector (2.0.4)
  - Locking sebastian/recursion-context (4.0.5)
  - Locking sebastian/resource-operations (3.0.3)
  - Locking sebastian/type (3.2.1)
  - Locking sebastian/version (3.0.2)
  - Locking symfony/phpunit-bridge (9.5.99)
  - Locking theseer/tokenizer (1.2.2)
Writing lock file
Installing dependencies from lock file
Package operations: 28 installs, 0 updates, 0 removals
  - Installing doctrine/instantiator (2.0.0): Extracting archive
  - Installing myclabs/deep-copy (1.11.1): Extracting archive
  - Installing phar-io/version (3.2.1): Extracting archive
  - Installing phar-io/manifest (2.0.3): Extracting archive
  - Installing theseer/tokenizer (1.2.2): Extracting archive
  - Installing sebastian/version (3.0.2): Extracting archive
  - Installing nikic/php-parser (v5.0.0): Extracting archive
  - Installing sebastian/lines-of-code (1.0.4): Extracting archive
  - Installing sebastian/environment (5.1.5): Extracting archive
  - Installing sebastian/complexity (2.0.3): Extracting archive
  - Installing sebastian/code-unit-reverse-lookup (2.0.3): Extracting archive
  - Installing phpunit/php-text-template (2.0.4): Extracting archive
  - Installing phpunit/php-file-iterator (3.0.6): Extracting archive
  - Installing phpunit/php-code-coverage (9.2.30): Extracting archive
  - Installing phpunit/php-invoker (3.1.1): Extracting archive
  - Installing phpunit/php-timer (5.0.3): Extracting archive
  - Installing sebastian/cli-parser (1.0.1): Extracting archive
  - Installing sebastian/code-unit (1.0.8): Extracting archive
  - Installing sebastian/recursion-context (4.0.5): Extracting archive
  - Installing sebastian/exporter (4.0.5): Extracting archive
  - Installing sebastian/diff (4.0.5): Extracting archive
  - Installing sebastian/comparator (4.0.8): Extracting archive
  - Installing sebastian/object-reflector (2.0.4): Extracting archive
  - Installing sebastian/global-state (5.0.6): Extracting archive
  - Installing sebastian/object-enumerator (4.0.4): Extracting archive
  - Installing sebastian/resource-operations (3.0.3): Extracting archive
  - Installing sebastian/type (3.2.1): Extracting archive
  - Installing symfony/phpunit-bridge (9.5.99): Symlinking from ../../../vendor/symfony/phpunit-bridge
3 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating optimized autoload files
24 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions