krakjoe / pcov

PCOV - CodeCoverage compatible driver for PHP
Other
695 stars 28 forks source link

It would be nice if pcov and phpunit's php-code-coverage communicated over directory filtering #49

Open HenkPoley opened 4 years ago

HenkPoley commented 4 years ago

With the default setting of not setting pcov.directory, pcov will latch onto either ./src, ./lib or, ./app. Leaving the end user confused why adding extra directories in phpunit.xml doesn't do anything:

https://github.com/sebastianbergmann/php-code-coverage/issues/741

It would be nice if in some way, the directories whitelisted in phpunit.xml or --whitelist <dir> would change a pcov.directory-like filter, according to the Rule of Least Surprise.


For now I'll try to see if I can move CentOS and Ubuntu or Debian to write pcov.directory=. in /etc/php/7.*/mods-available/pcov.ini, but that is less optimal and takes a bit of luck to find someone who just had their breakfast and coffee and is in a good mood to apply such a change. It also doesn't 'solve' it anywhere else. Neither is it really a proper solution.


Hedging my bets: https://youtrack.jetbrains.com/issue/WI-52914

fennik commented 3 years ago

Any update on this?

We have just run across the issue in our laravel project where we have introduced a second directory src/ additional to the default app/ directory. As a result of having 2 directories, we get 0% coverage across the board.

Haven't found a workaround yet

kubawerlos commented 3 years ago

@fennik you can set pcov.directory to the project's root - this is how I did it: https://github.com/kubawerlos/php-cs-fixer-custom-fixers/blob/v2.4.1/.github/workflows/ci.yaml#L64

crabmusket commented 3 months ago

While investigating this, I came across this blog post. I'm going to see if xdebug handles this situation better. https://thephp.cc/articles/pcov-or-xdebug

EDIT: using xdebug for coverage seems to Just Work ™️ so I'm using that to solve this problem. Hope that helps future searchers who used pcov by default!