I need to exclude several namespaces from my local unit tests execution. This is because I don't have some services in my local environment that are available in the CI pipeline. I can include a namespace by running something like:
phpunit --filter 'MyApp\\Providers\\Provider1'
I understand that the filter option accepts regular expressions, as described in https://phpunit.readthedocs.io/en/9.5/textui.html#command-line-options . However, I'm not being able to find a valid one to exclude two or more namespaces.
Tried different combinations like:
phpunit --filter '(?!(MyApp\\Providers\\Provider1)|(MyApp\\Services\\Service1)).*'
which is probably wrong.
CodePudding user response:
You did not specified look ahead starting position. So it will consume whole line from 0 to length of line content.
For example, if there's 3 lines with a1, a2, a3 and used (?!(a1|a2)).*, result will be 1, 2, a3.
Because you only skip 0 position of two lines (before a1 and b1).
If you specify starting position like ^(?!(a1|a2)).*, result will be only a3.
Because look ahead apply from only start of line(^) and .* will consume whole line.
