簡體   English   中英

PHP 單元。 錯誤:沒有可用的代碼覆蓋率驅動程序。 (安裝了 xdebug)

[英]PHPUnit. Error: No code coverage driver is available. (having xdebug installed)

有類似問題的答案Laravel 5: PHPUnit and no code coverage driver available that works,但我安裝了 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 由 Sebastian Bergmann 和貢獻者編寫。

錯誤:沒有可用的代碼覆蓋率驅動程序

.II 3 / 3 (100%)

時間:1.13 秒,內存:4.00MB

好的,但不完整、跳過或有風險的測試! 測試:3,斷言:1,不完整:2。完成。](url)

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

加載擴展哇。加載擴展

(我在同一個 Windows 分區中有 netbeans 和項目目錄)

大多數 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 ADDON 升級可以在 SourceForge 上找到

最新的 ADDON PHP 版本是 PHP7.0.6 也可在 SourceForge 上獲得

請參閱WampServer 論壇以了解 WAMPServer 3 的 PHP/MYSQL/Apache 插件的最新版本

還有:

您可能會發現,你必須tweek的Xdebug的配置參數php.ini ,以滿足您的特定需求

我在新安裝 PHP 7.1 時遇到了這個問題,這就是我為使其工作所做的工作

$ brew install php71-xdebug

$ php -i | grep 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 等。

在 Debian 上遇到同樣的問題:

錯誤:沒有可用的代碼覆蓋率驅動程序

我通過安裝 php-xdebug 修復了它: sudo apt install php-xdebug

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM