我有一个laravel项目,我试图运行phpunit
给我一份覆盖率报告。我运行了命令vendor/bin/phpunit --coverage-html storage/test-output-data/coverage-html
,它给出了输出:
PHPUnit 8.5.8 by Sebastian Bergmann and contributors.
Error: No code coverage driver is available
我尝试通过执行sudo pecl install pcov
来解决这种情况,但是运行phpunit仍然会出现上述相同错误。
我注意到我有文件/usr/lib/php/20170718/pcov.so
。因此,将行extension=/usr/lib/php/20170718/pcov.so
添加到了/etc/php/7.4/cli/php.ini
文件中。但是当我输入php -v
时,出现此错误:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20170718/pcov.so' (tried: /usr/lib/php/20170718/pcov.so (/usr/lib/php/20170718/pcov.so: undefined symbol: _zval_ptr_dtor), /usr/lib/php/20190902//usr/lib/php/20170718/pcov.so.so (/usr/lib/php/20190902//usr/lib/php/20170718/pcov.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 7.4.11 (cli) (built: Oct 10 2020 19:44:50) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.11, Copyright (c), by Zend Technologies
我还有一个名为/usr/lib/php/20190902
的文件夹,但没有pcov.so
文件。
我也尝试过执行sudo pecl install xdebug
,但是遇到了与上述类似的错误,其中phpunit说没有驱动程序,而键入php -v
则说缺少一些类似于pcov问题的全局变量。
我在做什么错了?
答案 0 :(得分:1)
这与PHPUnit无关。您的PHP环境有问题:“ PHP警告:PHP启动:无法加载动态库'/usr/lib/php/20170718/pcov.so”(尝试:/usr/lib/php/20170718/pcov.so (/usr/lib/php/20170718/pcov.so:未定义符号:_zval_ptr_dtor),/usr/lib/php/20190902//usr/lib/php/20170718/pcov.so.so(/ usr / lib / php /20190902//usr/lib/php/20170718/pcov.so.so:无法打开共享对象文件:无此类文件或目录)),位于第0行的“未知”中
答案 1 :(得分:1)
我注意到我有文件
/usr/lib/php/20170718/pcov.so
。因此,将行extension=/usr/lib/php/20170718/pcov.so
添加到了/etc/php/7.4/cli/php.ini
文件中。
当您尝试在PHP 7.4 中使用该文件时,该文件适用于 PHP 7.2 (基于20170718
部分)。
您需要为您的PHP 7.4获取正确版本的Xdebug(或PCOV)。 (注意:对于PHP 7.4,API版本(以及路径中的正确文件夹)将为20190902
。)
请尝试以下解决方案中的解决方案,以通过PECL为特定的PHP版本(7.4,而不是当前的7.2)切换/安装扩展程序:https://stackoverflow.com/a/54594604/783119
sudo pecl -d php_suffix=7.4 install <package-name>
答案 2 :(得分:0)
你只需要安装xdebug,覆盖就知道如何运行了。
例如,对于 PHP 7.1,就是这个包:
sudo apt install php7.1-xdebug
今天刚刚针对我的场景修复了它。在您的情况下,只需将 PHP 版本更改为:
sudo apt install php7.4-xdebug