Codeception\Test\Test::运行(?\Framework\TestResult $result = NULL) 必须兼容

Codeception\Test\Test::run(?\Framework\TestResult $result = NULL) must be compatible with

PHP v7.2.3
PHP单元8.2.3
Codeception 3.0.2

当我尝试 运行 测试时,出现以下错误:

Declaration of Codeception\Test\Test::run(?PHPUnit\Framework\TestResult $result = NULL) must be compatible with PHPUnit\Framework\Test::run(?PHPUnit\Framework\TestResult $result = NULL): PHPUnit\Framework\TestResult in /var/com/vendor/codeception/codeception/src/Codeception/Test/Test.php on line 18

当我查看 PHPUnit\Framework\Test::运行 的定义时,我看到它指定了 return 类型,但 Codeception\Test\Test::运行 没有这似乎是问题所在。

我已经在各自的 git 存储库中查看了这两个文件的版本历史记录,这些文件似乎在许多版本中都是这样。

经过大量搜索,似乎没有其他人发布过这个问题,这让我觉得我缺少一些关键见解。

任何关于此问题的线索都将不胜感激,谢谢!

最后,全新安装 Symfony 最新版本和 Codeception 提供了一个可行的解决方案。

由于这最初是来自另一个 symfony 3 应用程序(使用旧版本的 codeception)的端口,因此很可能存在配置错误或不兼容的包。

我后来想到的另一个可能的原因是,以前版本的 symfony 中用于代码接收的 cli 是 运行 来自通用 bin 目录 'bin/codecept',现在我们 运行 直接来自 'vendor/bin/codecept' 我的 CI 脚本可能引用了过时的 cli。