PHPUnit无法获取对$GLOBALS的引用

2w2cym1i  于 2023-01-16  发布在  PHP
关注(0)|答案(3)|浏览(964)

我在GitHub操作上运行PHPUnit测试时遇到错误。

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

看起来这个错误很可能与PHP8(https://php.watch/versions/8.1/GLOBALS-restrictions)有关,但是测试矩阵应该只运行PHP 7.2和7.4(测试在PHP 7.4上本地运行良好)。
错误显示在GitHub Actions. Testing matrix is here中。
任何帮助非常感谢!

编辑:
通过在容器中专门设置PHP版本作为第一步来解决此问题:

# 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
lmvvr0a8

lmvvr0a81#

您使用的是PHPUnit 7.5.20,它是PHP 8的not compatible

jqjz2hbq

jqjz2hbq2#

在PHP 8.1上运行CI作业时出现相同错误,其中Composer安装在--prefer-lowest上,phpunit版本为8.5.12
phpunit/phpunit依赖关系从>=8.5迁移到>=8.5.23确实解决了此问题。

igsr9ssn

igsr9ssn3#

对于PHP版本7.0.33,它工作正常。
从PHP版本8.1:$GLOBALS变量限制可用。

相关问题