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

时间:2016-05-17 08:25:44

标签: php phpunit wamp

类似问题Laravel 5: PHPUnit and no code coverage driver available的答案有效,但我安装了xdebug。

(如果我使用的话:windows7,netbeans8.1,php7,wamp3)

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

  

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

, 输出如下:

  

" C:\瓦帕\ WWW \ treningPHPUnitSymfony2.8 \ BIN \ phpunit.bat" " - 颜色"   " - 对数的junit" " C:\用户\吉尼\应用程序数据\本地\ TEMP \ NB-PHPUnit的-log.xml"   " - 覆盖-三叶草"   " C:\用户\吉尼\应用程序数据\本地\ TEMP \ NB-PHPUnit的-coverage.xml"   " C:\ Program Files \ NetBeans 8.1 \ php \ phpunit \ NetBeansSuite.php" " - "   " - 运行= C:\瓦帕\ WWW \ treningPHPUnitSymfony2.8 \ SRC \ TreningBundle \测试\控制器\ RabarbarControllerTest.php"   Sebastian Bergmann和贡献者的PHPUnit 5.3.4。

     

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

     

.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和项目目录)

3 个答案:

答案 0 :(得分:21)

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

修改Apache中PHP使用的正确php.ini使用菜单

wampmanager->PHP->php.ini

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

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

如果在CLI中配置了XDEBUG,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是3.0.4 可以在SourceForge

上找到ADDON升级

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

上找到

请参阅The WampServer Forum以了解最新版本的WAMPServer 3的PHP / MYSQL / Apache ADDONS

另外:

您可能会发现php.ini中的tweek the XDEBUG config parameters符合您的特定需求

答案 1 :(得分:6)

我在使用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等适用的包管理器。

答案 2 :(得分:2)

在Debian上也有同样的问题:

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

我通过安装php-xdebug修复了该问题:sudo apt install php-xdebug