Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: PhpStorm generated Regex filtering out the tests when using 3.x-dev release #1151

Open
CamKem opened this issue May 3, 2024 · 2 comments
Labels

Comments

@CamKem
Copy link

CamKem commented May 3, 2024

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

  1. Initialise a new project.
  2. With composer install "pestphp/pest": "^v3.0.0" which will install 3.x-dev branch.
  3. Write a basic Pest test & press the green arrow in the UI to run the test
  4. The regex it generates filters out the method level testing using the PhpStorm UI
  5. 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.
Screenshot 2024-05-03 at 8 20 56 pm
Screenshot 2024-05-03 at 8 28 07 pm

@CamKem CamKem added the bug label May 3, 2024
@smirok
Copy link

smirok commented May 21, 2024

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?

@CamKem
Copy link
Author

CamKem commented May 23, 2024

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?

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants