2016-05-17 44 views
13

C'è una risposta per la domanda simile Laravel 5: PHPUnit and no code coverage driver available che funziona, ma ho installato xdebug.PHPUnit. Errore: nessun driver di copertura del codice è disponibile. (avendo installato xdebug)

(se questa materia sto usando: Windows7, netbeans8.1, php7, wamp3)

Visualizzazione copertura del codice in seguito Netbeans in:

Error: No code coverage driver is available

, e l'uscita è al di sotto:

"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 by Sebastian Bergmann and contributors.

Error: No code coverage driver is available

.II 3/ 3 (100%)

Time: 1.13 seconds, Memory: 4.00MB

OK, but incomplete, skipped, or risky tests! Tests: 3, Assertions: 1, Incomplete: 2. Done.](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 

estensioni caricate wamp. loaded extension

(ho NetBeans e directory del progetto in stessa partizione di Windows)

+1

Cosa sta dicendo 'php.exe -v'? Xdebug è abilitato? –

+0

C: \ Windows \ System32> php.exe -v PHP 7.0.1 (cli) (versione: 16 dicembre 2015 13:36:30) (ZTS) Copyright (c) 1997-2015 Il gruppo PHP Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies –

+0

xdebug come mostrato nell'ultima schermata di stampa nel post principale è nell'elenco –

risposta

11

Ci sono 2 php.ini file nella maggior parte delle installazioni di Apache/PHP e sicuramente in WAMPServer

di modificare la corretto php.ini utilizzato da PHP in Apache utilizzare i menu

wampmanager->PHP->php.ini 

Ma per il file php.ini utilizzata dal PHP CLI è necessario modificare manualmente

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

il risultato di una php -v dovrebbe apparire così se Xdebug è configurato nel 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 

NOTA

L'attuale WAMPServer 3 è 3.0.4 Gli aggiornamenti di ADDON possono essere trovati su SourceForge

L'ultima ADDON PHP versione è PHP7.0.6 disponibile anche su SourceForge

Vedi The WampServer Forum per tenersi aggiornati con le ultime release di PHP/MySQL/Apache Il mondo di WAMPServer 3

anche:

Potreste scoprire che si deve tweek the XDEBUG config parameters nel php.ini in base alle proprie specifiche esigenze

+0

giusto. il risultato di un 'php -v' ora mostra xdebug –

+0

Dopo aver modificato php.ini nella directory php non c'è più' Errore: nessun driver di copertura del codice è disponibile 'invece ho un nuovo 'Errore: nessuna whitelist configurata, nessuna copertura del codice sarà essere generato' ma questo è un progresso, penso, e un problema per la nuova ricerca di Google e un altro argomento. Grazie per tutti i suggerimenti! –

+1

Dai un'occhiata alla documentazione di XDEBUG, in particolare 'xdebug.coverage_enable' – RiggsFolly

2

mie impostazioni: (PHP + Xdebug sul CLi abilitato)

.210

MAMP 4 PRO/OS X 10,12

PHP 7.0.10 (cli) (built: Aug 25 2016 17:32:10) (NTS) 
Copyright (c) 1997-2016 The PHP Group 
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies 
    with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans 

zend_extension="/Applications/MAMP/bin/php/php7.0.10/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so" 
xdebug.profiler_enable=1 
xdebug.profiler_output_dir="/Applications/MAMP/tmp" 
xdebug.coverage_enable=1 

nonché la copertura non ancora essere fatte: "Nessun driver di copertura di codice è disponibile"

4

Ho affrontato questo problema con una nuova installazione di PHP 7 .1 e questo è quello che ho fatto per farlo funzionare

$ brew install php71-xdebug

$ php -i | grep xdebug // per verificare se è stato installato xdebug

$ phpunit

Dopo che ha funzionato. Inoltre questo è come il mio phpunit.xml sembra che ho bisogno di whitelist tutta la struttura perché è condiviso componente

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

Questa soluzione funziona su MacOS solo, se si desidera farlo funzionare su Linux quindi è necessario usa il gestore di pacchetti applicabile come apt-get ecc.

+1

Questo è solo MAC, naturalmente. –

+0

sì, su linux è necessario utilizzare un altro gestore di pacchetti come apt-get su sistemi debian – Robert