web-dev-qa-db-ja.com

PHPUnit。エラー:コードカバレッジドライバーは利用できません。 (xdebugがインストールされている)

同様の質問に対する回答があります 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、Sebastian Bergmannおよび寄稿者。

エラー:コードカバレッジドライバーは利用できません

.II 3/3(100%)

時間:1.13秒、メモリ:4.00MB

OK、しかし不完全、スキップ、または危険なテスト!テスト: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

ロードされた拡張機能 wamp. loaded extension

(同じ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

xDEBUGがCLIで構成されている場合、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

[〜#〜] note [〜#〜]

現在のWAMPServer 3は3.0.4です。アドオンのアップグレードはSourceForgeで見つけることができます

最新のADDON PHPバージョンはPHP7.0.6で、SourceForgeでも入手可能です

The WampServer Forum を参照して、PHP/MYSQL/Apache ADDONS for WAMPServer 3の最新リリースの最新情報を入手してください。

また:

特定のニーズに合わせてphp.initxthe XDEBUG config parameters する必要がある場合があります。

22
RiggsFolly

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などの適切なパッケージマネージャーを使用する必要があります。

7
Robert