2

我有一个 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文件。

我也试过做 a sudo pecl install xdebug,但我遇到了与上面类似的错误,其中 phpunit 说没有驱动程序并且键入php -v说一些全局变量丢失,类似于 pcov 问题。

我究竟做错了什么?

4

3 回答 3

2

这与 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 行的未知中“

于 2020-10-16T08:40:43.933 回答
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>
于 2020-10-16T14:55:23.670 回答
0

你只需要安装 xdebug,这样覆盖就知道如何运行了。

例如,对于 PHP 7.1,它是这个包:

sudo apt install php7.1-xdebug

今天刚刚为我的场景修复了它。在您的情况下,只需将 PHP 版本更改为:

sudo apt install php7.4-xdebug
于 2021-03-19T09:41:10.473 回答