2016-05-17 11 views
13

Es gibt eine Antwort für ähnliche Frage Laravel 5: PHPUnit and no code coverage driver available, die funktioniert, aber ich habe xdebug installiert.PHPUnit. Fehler: Kein Code Coverage-Treiber ist verfügbar. (mit xdebug installiert)

(wenn diese Angelegenheit Ich verwende: Windows7, netbeans8.1, php7, wamp3)

Code-Coverage-Anzeige in Netbeans Ergebnis in:

Error: No code coverage driver is available

, und der Ausgang ist unter:

"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 

geladene Erweiterungen wamp. loaded extension

(Ich habe Netbeans und Projektverzeichnis in derselben Windows-Partition)

+1

Was sagt 'php.exe -v' dir? Ist xdebug aktiviert? –

+0

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

+0

xdebug wie im letzten Druckbildschirm im Hauptpost angezeigt, ist in der Liste –

Antwort

11

Es gibt 2 php.ini Dateien in den meisten Apache/PHP-Installationen und auf jeden Fall in WAMPServer

das zu ändern Korrekt php.ini verwendet von PHP in Apache verwenden Sie die Menüs

wampmanager->PHP->php.ini 

Aber für die php.ini Datei von der PHP-CLI verwendet manuell

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

das Ergebnis einer php -v wie diese bearbeiten müssen aussehen sollte, wenn XDebug

im CLI konfiguriert ist
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 

HINWEIS

Der aktuelle WAMPServer 3 ist 3.0.4 ADDON-Upgrades können auf SourceForge

gefunden werden

Die neueste ADDON PHP Version ist PHP7.0.6 auch auf Source

The WampServer Forum Sehen Sie mit den neuesten Versionen von PHP/MySQL/Apache ADDONS auf dem Laufenden zu halten für WAMPServer 3

auch:

Sie können feststellen, dass Sie tweek the XDEBUG config parameters im php.ini haben spezielle Bedürfnisse

+0

das ist richtig. das Ergebnis eines 'php -v' zeigt nun xdebug –

+0

Nach der Bearbeitung von php.ini im php-Verzeichnis gibt es keinen 'Error: Kein Code-Coverage-Treiber mehr verfügbar', stattdessen habe ich einen neuen' Fehler: Keine Whitelist konfiguriert, kein Code-Coverage generiert werden, aber das ist ein Fortschritt, denke ich, und ein Problem für die neue Google-Suche und ein anderes Thema. Danke für alle Tipps! –

+1

Werfen Sie einen Blick auf die XDEBUG-Dokumentation, speziell 'xdebug.coverage_enable' – RiggsFolly

2

Meine Einstellungen anpassen: (PHP + Xdebug auf CLi aktiviert)

MAMP 4 PRO/O 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 

und die Reichweite ist noch nicht gemacht werden: "No Code-Coverage-Treiber verfügbar ist"

4

ich dieses Problem mit einer neuen Installation von PHP 7 konfrontiert habe .1 und das ist, was ich getan habe, um es

$ brew install php71-xdebug

$ php -i | grep xdebug // überprüfen funktioniert, wenn xdebug

$ phpunit

installiert Danach es funktionierte. Außerdem ist dies, wie mein phpunit.xml sieht aus wie ich gebraucht habe ganze Struktur auf die weiße Liste, weil es Bestandteil freigegeben ist

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

Diese Lösung wird nur auf MacOS arbeiten, wenn Sie wollen es auf Linux funktioniert, dann müssen Sie Verwende einen geeigneten Paketmanager wie apt-get usw.

+1

Dies ist natürlich nur MAC. –

+0

yep, auf Linux müssen Sie andere Paketmanager wie apt-get auf Debian-Systemen verwenden – Robert