PHPUnit 无法获取对 $GLOBALS 的引用

Dev*_*ice 17 php phpunit github-actions

我在 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
Run Code Online (Sandbox Code Playgroud)

看起来这个错误可能与 PHP8 ( https://php.watch/versions/8.1/GLOBALS-restrictions ) 有关,但测试矩阵应该只运行 PHP 7.2 和 7.4 (测试在 PHP 7.4 上本地运行良好)。

GitHub Actions中显示此处的错误。测试矩阵在这里

非常感谢任何帮助!

--

编辑:

作为第一步,通过在容器中专门设置 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
Run Code Online (Sandbox Code Playgroud)

Seb*_*ann 17

您使用的是 PHPUnit 7.5.20,它与 PHP 8不兼容。


Rva*_*aak 13

--prefer-lowest在使用 phpunit 版本 8.5.12安装 Composer 的 PHP 8.1 上运行 CI 作业时出现相同的错误

phpunit/phpunit依赖关系从>=8.5改为>=8.5.23确实解决了这个问题。