在 CakePHP 5 中,PHPUnit 的最低版本已从 ^8.5 || ^9.3
更改为 ^10.1
。这引入了 PHPUnit 和 CakePHP 双方的几个重大更改。
建议通过以下命令让 PHPUnit 更新其配置文件
vendor/bin/phpunit --migrate-configuration
注意
请确保您已通过 vendor/bin/phpunit --version
升级到 PHPUnit 10,然后再执行此命令!
完成此命令后,您的 phpunit.xml
文件将包含大多数推荐的更改。
PHPUnit 10 删除了旧的钩子系统,并引入了一个新的 事件系统,这需要您在 phpunit.xml
文件中进行以下调整:
<extensions>
<extension class="Cake\TestSuite\Fixture\PHPUnitExtension"/>
</extensions>
将
<extensions>
<bootstrap class="Cake\TestSuite\Fixture\Extension\PHPUnitExtension"/>
</extensions>
->withConsecutive()
已被移除¶
->withConsecutive(['firstCallArg'], ['secondCallArg'])
您可以将已移除的 ->withConsecutive()
方法转换为一个可行的临时解决方案,如以下示例所示:
->with(
...self::withConsecutive(['firstCallArg'], ['secondCallArg'])
)
应转换为
self::withConsecutive()
已通过 Cake\TestSuite\PHPUnitConsecutiveTrait
添加到基类 Cake\TestSuite\TestCase
中,因此您无需手动将该特质添加到您的 Testcase 类中。数据提供者必须是静态的¶
public function myProvider(): array
您可以将已移除的 ->withConsecutive()
方法转换为一个可行的临时解决方案,如以下示例所示:
public static function myProvider(): array