Con CakePHP 5 la version mínima de PHPUnit ha cambiado de ^8.5 || ^9.3
a ^10.1
.
Esto introduce algunos cambios importantes tanto por parte de PHPUnit como por parte de CakePHP.
Se recomienda dejar que PHPUnit actualice su archivo de configuración a través del siguiente comando:
vendor/bin/phpunit --migrate-configuration
Nota
¡Asegúrese de que ya está en PHPUnit 10 a través de vendor/bin/phpunit --version
antes de ejecutar este comando!
Una vez hayas ejecutado este comando, tu phpunit.xml
tendrá mayoría de los cambios recomendados.
PHPUnit 10 eliminó el antiguo sistema de hook e introdujo un nuevo Sistema de eventos
Lo que requiere que se ajuste el siguiente código en su phpunit.xml
desde:
<extensions>
<extension class="Cake\TestSuite\Fixture\PHPUnitExtension"/>
</extensions>
a:
<extensions>
<bootstrap class="Cake\TestSuite\Fixture\Extension\PHPUnitExtension"/>
</extensions>
->withConsecutive()
ha sido eliminado¶Puedes convertir el metodo ->withConsecutive()
eliminado
en una solución provisional que funcione como puede ver aquí:
->withConsecutive(['firstCallArg'], ['secondCallArg'])
debe convertirse a:
->with(
...self::withConsecutive(['firstCallArg'], ['secondCallArg'])
)
se ha añadido el método estático self::withConsecutive()
a través del método Cake\TestSuite\PHPUnitConsecutiveTrait
a la clase base Cake\TestSuite\TestCase
para que no tenga que agregar manualmente este trait a tus clases de TestCase.
Si tus testcases aprovechan la función de proveedor de datos de PHPUnit entonces tienes que ajustar tus proveedores de datos para que sean estáticos:
public function myProvider(): array
debe convertirse en:
public static function myProvider(): array