pestphp / pest

Pest is an elegant PHP testing Framework with a focus on simplicity, meticulously designed to bring back the joy of testing in PHP.
https://pestphp.com
MIT License
9.06k stars 313 forks source link

[Bug]: compatibility broken with laravel 11 by laravel update on March 26 #1127

Closed daveaie closed 2 months ago

daveaie commented 3 months ago

What Happened

creating a new laravel project and adding pest with sail composer require pestphp/pest-plugin-laravel --dev --with-all-dependencies get this error:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - pestphp/pest-plugin-laravel v2.3.0 requires pestphp/pest ^2.33.6 -> satisfiable by pestphp/pest[v2.33.6, ..., v2.34.6].
    - pestphp/pest-plugin-laravel v2.2.0 requires pestphp/pest ^2.13.0 -> satisfiable by pestphp/pest[v2.13.0, ..., v2.34.6].
    - pestphp/pest-plugin-laravel v0.2.0 requires php ^7.3 -> your php version (8.3.4) does not satisfy that requirement.
    - pestphp/pest-plugin-laravel[v0.3.0, v1.0.0, ..., v1.1.0] require laravel/framework ^7.0 || ^8.0 -> found laravel/framework[v7.0.0, ..., v7.30.6, v8.0.0, ..., v8.83.27] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest-plugin-laravel v1.2.0 requires laravel/framework ^7.0 || ^8.0 || ^9.0 -> found laravel/framework[v7.0.0, ..., v7.30.6, v8.0.0, ..., v8.83.27, v9.0.0, ..., v9.52.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest-plugin-laravel v1.3.0 requires laravel/framework ^7.30.6 || ^8.83.23 || ^9.30.1 -> found laravel/framework[v7.30.6, v8.83.23, ..., v8.83.27, v9.30.1, ..., v9.52.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest-plugin-laravel v1.4.0 requires laravel/framework ^7.30.6 || ^8.83.27 || ^9.47.0 || ^10.0.0 -> found laravel/framework[v7.30.6, v8.83.27, v9.47.0, ..., v9.52.16, v10.0.0, ..., v10.48.4] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest-plugin-laravel v2.0.0 requires laravel/framework ^10.4.1 -> found laravel/framework[v10.4.1, ..., v10.48.4] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest-plugin-laravel v2.1.0 requires laravel/framework ^10.15.0 -> found laravel/framework[v10.15.0, ..., v10.48.4] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest[v2.13.0, ..., v2.19.1] require nunomaduro/collision ^7.8.1 -> found nunomaduro/collision[v7.8.1, v7.9.0, v7.10.0] but it conflicts with your root composer.json require (^8.0).
    - pestphp/pest[v2.19.2, ..., v2.22.1] require nunomaduro/collision ^7.9.0 -> found nunomaduro/collision[v7.9.0, v7.10.0] but it conflicts with your root composer.json require (^8.0).
    - pestphp/pest v2.23.0 requires phpunit/phpunit ^10.4.0 -> found phpunit/phpunit[10.4.0, ..., 10.5.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest[v2.23.1, ..., v2.24.0] require phpunit/phpunit ^10.4.1 -> found phpunit/phpunit[10.4.1, ..., 10.5.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest[v2.24.1, ..., v2.26.0] require phpunit/phpunit ^10.4.2 -> found phpunit/phpunit[10.4.2, ..., 10.5.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest v2.27.0 requires phpunit/phpunit ^10.5.1 -> found phpunit/phpunit[10.5.1, ..., 10.5.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest v2.28.0 requires phpunit/phpunit ^10.5.2 -> found phpunit/phpunit[10.5.2, ..., 10.5.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest[v2.28.1, ..., v2.29.0] require phpunit/phpunit ^10.5.3 -> found phpunit/phpunit[10.5.3, ..., 10.5.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest[v2.29.1, ..., v2.31.0] require phpunit/phpunit ^10.5.5 -> found phpunit/phpunit[10.5.5, ..., 10.5.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest v2.32.0 requires phpunit/phpunit ^10.5.7 -> found phpunit/phpunit[10.5.7, ..., 10.5.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest[v2.32.1, ..., v2.33.4] require phpunit/phpunit ^10.5.9 -> found phpunit/phpunit[10.5.9, ..., 10.5.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest[v2.33.5, ..., v2.34.0] require phpunit/phpunit ^10.5.10 -> found phpunit/phpunit[10.5.10, ..., 10.5.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest v2.34.1 requires phpunit/phpunit ^10.5.11 -> found phpunit/phpunit[10.5.11, ..., 10.5.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest v2.34.2 requires phpunit/phpunit ^10.5.12 -> found phpunit/phpunit[10.5.12, ..., 10.5.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest[v2.34.3, ..., v2.34.4] require phpunit/phpunit ^10.5.13 -> found phpunit/phpunit[10.5.13, 10.5.14, 10.5.15, 10.5.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest v2.34.5 requires phpunit/phpunit ^10.5.15 -> found phpunit/phpunit[10.5.15, 10.5.16] but it conflicts with your root composer.json require (^11.0).
    - pestphp/pest v2.34.6 requires phpunit/phpunit ^10.5.16 -> found phpunit/phpunit[10.5.16] but it conflicts with your root composer.json require (^11.0).
    - Root composer.json requires pestphp/pest-plugin-laravel * -> satisfiable by pestphp/pest-plugin-laravel[v0.2.0, v0.3.0, v1.0.0, ..., v1.4.0, v2.0.0, v2.1.0, v2.2.0, v2.3.0].

You can also try re-running composer require with an explicit version constraint, e.g. "composer require pestphp/pest-plugin-laravel:*" to figure out if any version is installable, or "composer require pestphp/pest-plugin-laravel:^2.1" if you know which you need.

I check on lararavel repo that on March 26 they have update requirments on phpunit to 11 https://github.com/laravel/laravel/pull/6385/files

How can i install pest ? there is some workaround ?

How to Reproduce

  1. install new laravel project curl -s "https://laravel.build/example-app?with=mysql,redis" | bash (or other install with out sail)
  2. install pest sail composer require pestphp/pest-plugin-laravel --dev --with-all-dependencies (in cae do not use sail before composer)

Sample Repository

No response

Pest Version

last

PHP Version

8.3

Operation System

Linux

Notes

No response

daveaie commented 2 months ago

Hi @nunomaduro , you have updated to ^10.15.17, but laravel require ^11.x image

creating a new laravel 11 project i can not use pest

daveaie commented 2 months ago

Sorry @nunomaduro i read well the installation section and see that needs to remove phpunit before install pest. I undesrtud that it align dependecies version and installa the correct version , compatible with other composer package. but the question is : is correct to reduce compatibility version of laravel default?

I suppose the answare is "yes" , because the phpunit is only for running test suite, and if you use pest instead of default laraval test, is correct to intall dependecies of pest.