[英]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.