I just want to do phpunit --coverage
for my project first I got this error:
PHPUnit 9.5.0 by Sebastian Bergmann and contributors.
Warning: No code coverage driver available
I just check my php to make sure I have xdebug via php -v
PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
seems I do not have it then I just install it via pecl install xdebug
Homebrew I got this error at the end of installation:
........
Build process completed successfully
Installing '/usr/local/Cellar/php/8.0.0_1/pecl/20200930/xdebug.so'
Warning: mkdir(): File exists in System.php on line 294
Warning: mkdir(): File exists in /usr/local/Cellar/php/8.0.0_1/share/php/pear/System.php on line 294
ERROR: failed to mkdir /usr/local/Cellar/php/8.0.0_1/pecl/20200930
You can step by step debug this problem with starting to check what it is inside the /usr/local/Cellar/php/8.0.0_1
folder running
$ cd /usr/local/Cellar/php/8.0.0_1
$ ls -la
I tend to say that there is a pecl
symlink already existing which is why pecl
cannot create a folder there.
Then you should check where pecl
is installed by running which pecl
which ideally gives you /usr/local/bin/pecl
which should point to somewhere /usr/local/Cellar/php/8.0.0_1/bin/pecl
.
If that is the case you can remove the /usr/local/Cellar/php/8.0.0_1/pecl
symlink with
$ rm /usr/local/Cellar/php/8.0.0_1/pecl
and try to reinstall xdebug.
Now fixing the image not found
issue
This comes from an incorrect configuration during the xdebug installation.
First, check what the path to your php.ini
file is by running php --ini
.
Then open the file and check the First line if there is your xdebug Extension loaded. If yes, remove it there. Then add a file xdebug.ini in the conf.d
folder and add the following to the file you create:
Xdebug version <3.0:
;XDebug
zend_extension="/usr/local/Cellar/php/8.0.0/pecl/CHANGEME/xdebug.so"
xdebug.remote_autostart=1
xdebug.remote_port=9000
xdebug.remote_enable=1
xdebug.profiler_enable=1
xdebug.profiler_output_dir="/tmp"
Xdebug version >=3.0
;XDebug
zend_extension="/usr/local/Cellar/php/8.0.0/pecl/CHANGEME/xdebug.so"
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_port=9003
xdebug.profiler_output_dir="/tmp"
Please check that you have the correct path to your xdebug.so file and that the output dir exists.