[Bug]: PhpStorm generated Regex filtering out the tests when using 3.x-dev release
What Happened
I have come across an issue when using PhpStorm UI to press the arrow which runs a method level test. It generates a --filter flag with a Regex. In 2.34.7 (Current Release), it works fine, the test will be found, run & pass. However, when using the v3.0.0 (3.x-dev) the action will return an Exit Code 0 with no test run, as it filters out the method level running of the test suite.
This is the Regex it is generating: --filter=/^(P\)?Tests\NewTest::it\sthis\sis\sa\stest(\swith\s(data\sset\s"."|(.))(\s/\s(data\sset\s"."|(.)))*(\s#\d+)?)?$/
Expected Result
- It will find the test and run it as expected.
Actual Result
- The test is filtered out and the suite runs without any tests
I have attached screenshots of the test being run with the --debug flag.
How to Reproduce
- Initialise a new project.
- With composer install "pestphp/pest": "^v3.0.0" which will install 3.x-dev branch.
- Write a basic Pest test & press the green arrow in the UI to run the test
- The regex it generates filters out the method level testing using the PhpStorm UI
- Switch to "pestphp/pest": "^v2.34.7" and it runs fine.
Sample Repository
No response
Pest Version
3.x-dev
PHP Version
8.3.6
Operation System
macOS
Notes
I have attached screenshots of the same test being run using both the v2.x & v3.x with the --debug flag.
Looks like __pest_evaluable_ prefix isn't prepended to test names anymore.
That's why the filter
--filter=/^(P\)?Tests\NewTest::it\sthis\sis\sa\stest(\swith\s(data\sset\s"."|(.))(\s/\s(data\sset\s"."|(.)))*(\s#\d+)?)?$/
doesn't work in Pest 3.x-dev, but the filter
--filter=/^(P\)?Tests\NewTest::__pest_evaluable_it\sthis\sis\sa\stest(\swith\s(data\sset\s"."|(.))(\s/\s(data\sset\s"."|(.)))*(\s#\d+)?)?$/ works just fine
Do you have any ideas, is it a random regression that will be fixed for the Pest v3 release or is it a implication of new features for v3 release?
Looks like
__pest_evaluable_prefix isn't prepended to test names anymore.That's why the filter
--filter=/^(P\)?Tests\NewTest::it\sthis\sis\sa\stest(\swith\s(data\sset\s"."|(.))(\s/\s(data\sset\s"."|(.)))*(\s#\d+)?)?$/doesn't work in Pest 3.x-dev, but the filter--filter=/^(P\)?Tests\NewTest::__pest_evaluable_it\sthis\sis\sa\stest(\swith\s(data\sset\s"."|(.))(\s/\s(data\sset\s"."|(.)))*(\s#\d+)?)?$/works just fineDo you have any ideas, is it a random regression that will be fixed for the Pest v3 release or is it a implication of new features for v3 release?
Thanks for looking into it on the PhpStorm/Jetbrains side, I'm not certain of the direction for v3 regarding the prefix, so I let @nunomaduro know you had responded & he mentioned he'll check it out when he gets a chance, so we can resolve the issue.
fixed.