PHPUnit.错误:没有可用的代码覆盖率驱动程序。(已安装 xdebug)

2022-08-30 11:03:27

类似的问题Laravel 5有一个答案:PHPUnit和没有可用的代码覆盖率驱动程序,但我安装了xdebug。

(如果这件事我正在使用:windows7,netbeans8.1,php7,wamp3)

在 Netbeans 中显示代码覆盖率会导致:

错误:没有可用的代码覆盖率驱动程序

,输出如下:

“C:\wamp\www\treningPHPUnitSymfony2.8\bin\phpunit.bat” “--colors” “--log-junit” “C:\Users\chiny\AppData\Local\Temp\nb-phpunit-log.xml” “--coverage-clover” “C:\Users\chiny\AppData\Local\Temp\nb-phpunit-coverage.xml” “C:\Program Files\NetBeans 8.1\php\phpunit\NetBeansSuite.php” “--” “--run=C:\wamp\www\treningPHPUnitSymfony2.8\src\TreningBundle\Tests\Controller\RabarbarControllerTest.php” PHPUnit 5.3.4 by Sebastian Bergmann and contributors.

错误:没有可用的代码覆盖率驱动程序

.II 3 / 3 (100%)

时间: 1.13 秒, 内存: 4.00MB

好的,但不完整,跳过或有风险的测试!测试: 3, 断言: 1, 未完成: 2. 完成。(网址)

xdebug conf (C:\wamp\bin\apache\apache2.4.17\bin\php.ini):

[xdebug]
zend_extension ="C:/wamp/bin/php/php7.0.1/zend_ext/php_xdebug-2.4.0rc3-7.0-vc14.dll"

xdebug.remote_enable = off
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = Off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir ="C:/wamp/tmp"
xdebug.show_local_vars=0

加载的扩展wamp. loaded extension

(我在同一个Windows分区中有netbeans和项目目录)


答案 1

在大多数Apache / PHP安装中有2个文件,绝对在WAMPServer中php.ini

要修改PHP在Apache中使用的正确用法,请使用菜单php.ini

wampmanager->PHP->php.ini

但是对于PHP CLI使用的文件,您必须手动编辑php.ini

\wamp\bin\php\php{version}\php.ini

如果在 CLI 中配置了 XDEBUG,则 a 的结果应如下所示php -v

php -v
PHP 7.0.6 (cli) (built: Apr 27 2016 14:00:40) ( ZTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Xdebug v2.4.0, Copyright (c) 2002-2016, by Derick Rethans

注意

目前的WAMPServer 3是ADDON升级可以在SourceForge上找到3.0.4

最新的ADDON PHP版本是PHP7.0.6,也可以在SourceForge上找到。

请参阅 WampServer 论坛,了解适用于 WAMPServer 3 的 PHP / MYSQL / Apache ADDONS 的最新版本

也:

您可能会发现,您必须在 中调整 XDEBUG 配置参数以满足您的特定需求php.ini


答案 2

我在新安装的PHP 7.1中遇到了这个问题,这就是我为使其工作所做的工作

$ brew install php71-xdebug

$ php -i | grep xdebug以检查是否已安装 xdebug

$ phpunit

在那之后,它起作用了。此外,这就是我的phpunit.xml看起来我需要将整个结构列入白名单,因为它是共享组件

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         bootstrap="vendor/autoload.php"
         colors="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="false"
         stopOnFailure="false"
         syntaxCheck="false">
    <testsuites>
        <testsuite name="Tests">
            <directory suffix=".php">./Tests/</directory>
        </testsuite>
    </testsuites>
    <logging>
        <log type="coverage-clover" target="./build/logs/clover.xml"/>
    </logging>
    <filter>
        <whitelist addUncoveredFilesFromWhitelist="true">
            <directory>./</directory>
        </whitelist>
    </filter>
</phpunit>

这个解决方案只能在MacOS上工作,如果你想让它在Linux上工作,那么你需要使用适用的包管理器,如apt-get等。


推荐