'PHPUnit Cannot acquire reference to $GLOBALS
I am getting an error when running PHPUnit tests on GitHub actions.
PHP Fatal error: Cannot acquire reference to $GLOBALS in /home/runner/work/project-name/project-name/vendor/phpunit/phpunit/src/Util/Configuration.php on line 570
It seems like this error is likely related to PHP8 (https://php.watch/versions/8.1/GLOBALS-restrictions), but the test matrix should only be running PHP 7.2 and 7.4 (tests run fine locally on PHP 7.4).
Error shown here in GitHub Actions. Testing matrix is here.
Any help much appreciated!
--
Edit:
Resolved this by specifically setting the PHP Version in the container as the first step:
# PHPUnit errors with latest PHP 8.X build.
# This specifically sets PHP version to 7.4.
- name: Setup PHP with tools
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'
tools: phpunit
Solution 1:[1]
You are using PHPUnit 7.5.20 which is not compatible with PHP 8.
Solution 2:[2]
Had the same error when running a CI job on PHP 8.1 with Composer installation on --prefer-lowest with phpunit version 8.5.12
Bumping the phpunit/phpunit dependency from >=8.5 to >=8.5.23 did resolve this issue.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Sebastian Bergmann |
| Solution 2 | Rvanlaak |
