web-dev-qa-db-fra.com

PHPUnit. Erreur: Aucun pilote de couverture de code n'est disponible. (ayant xdebug installé)

Il existe une réponse à une question similaire Laravel 5: PHPUnit et aucun pilote de couverture de code disponible cela fonctionne, mais xdebug est installé.

(si j'utilise cette question: windows7, netbeans8.1, php7, wamp3)

L'affichage de la couverture de code dans Netbeans entraîne:

Erreur: aucun pilote de couverture de code n'est disponible

, et la sortie est ci-dessous:

"C:\wamp\www\treningPHPUnitSymfony2.8\bin\phpunit.bat" "--colors" "--log-junit" "C:\Utilisateurs\chiny\AppData\Local\Temp\nb-phpunit-log. xml "" --coverage-clover "" C:\Utilisateurs\chiny\AppData\Local\Temp\nb-phpunit-couverture.xml "" C:\Programmes\NetBeans 8.1\php\phpunit\NetBeansSuite.php "" - "" --run = C:\wamp\www\treningPHPUnitSymfony2.8\src\TreningBundle\Tests\Controller\RabarbarControllerTest.php "PHPUnit 5.3.4 par Sebastian Bergmann et ses contributeurs.

Erreur: aucun pilote de couverture de code n'est disponible

.II 3/3 (100%)

Temps: 1,13 secondes, mémoire: 4,00 Mo

OK, mais tests incomplets, sautés ou risqués! Tests: 3, Assertions: 1, incomplètes: 2. Fait.] (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

extensions chargées wamp. loaded extension

(J'ai Netbeans et le répertoire du projet dans la même partition Windows)

Il ya deux php.ini fichiers dans la plupart des installations Apache/PHP et certainement dans WAMPServer

Pour modifier le bon php.ini utilisé par PHP dans Apache utilise les menus

wampmanager->PHP->php.ini

Mais pour le php.ini fichier utilisé par le PHP CLI que vous devez modifier manuellement

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

le résultat d'un php -v devrait ressembler à ceci si XDEBUG est configuré dans la CLI

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 [~ # ~]

Le serveur WAMPServer 3 actuel est 3.0.4 Les mises à jour d’ADDON sont disponibles sur SourceForge

La dernière version de ADDON PHP est PHP7.0.6 également disponible sur SourceForge

Voir Forum WampServer pour vous tenir au courant des dernières versions de PHP/MYSQL/Apache ADDONS pour WAMPServer 3

Également :

Vous constaterez peut-être que vous devez modifier les paramètres de configuration de XDEBUG dans le php.ini pour répondre à vos besoins spécifiques

22
RiggsFolly

J'ai rencontré ce problème avec une nouvelle installation de PHP 7.1) et voici ce que j'ai fait pour que cela fonctionne.

$ brew install php71-xdebug

$ php -i | grep xdebug // pour vérifier si xdebug a été installé

$ phpunit

Après cela a fonctionné. De plus, voici à quoi ressemble mon phpunit.xml comme si j'avais besoin de la liste blanche de la structure entière parce que c'est un composant partagé

<?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>

Cette solution ne fonctionnera que sur MacOS. Si vous voulez que cela fonctionne sous Linux, vous devez utiliser le gestionnaire de paquets applicable tel qu'apt-get, etc.

7
Robert