2016-08-08 77 views
0

Ich habe Netbeans 8.2 (auf Fedora 24) und einen Webserver mit PHP7 + XDebug installiert. Der Debugger funktioniert gut mit Netbeans, aber wenn ich einen Test erzeugt durch Netbeans ausführen, ich habe diese Nachricht:Kein Codeabdeckung Treiber ist mit einem Remote XDebug + Nebeans

"/usr/bin/php" "/usr/local/bin/phpunit" "--colors" "--log-json" "/tmp/nb-phpunit-log.json" "--coverage-clover" "/tmp/nb-phpunit-coverage.xml" "/home/karima/netbeans-dev-201608060002/php/phpunit/NetBeansSuite.php" "--" "--run=/home/karima/git/App/tests/selenium" 
    PHP Fatal error: Class 'WebDriverCapabilityType' not found in /home/karima/git/App/tests/selenium/htdocs/indexTest.php on line 22 
    PHPUnit 5.4.8 by Sebastian Bergmann and contributors. 

    Error:   No code coverage driver is available 

    Done. 

Hier die einfachen Test:

class indexTest extends PHPUnit_Framework_TestCase { 

    /** 
    * @var \RemoteWebDriver 
    */ 
    protected $webDriver; 

    public function setUp() { 
     $capabilities = array(\WebDriverCapabilityType::BROWSER_NAME => 'firefox'); 
     $this->webDriver = RemoteWebDriver::create('http://app/', $capabilities); 
    } 

    public function tearDown() { 
     $this->webDriver->close(); 
    } 

    protected $url = 'http://www.netbeans.org/'; 

    public function testSimple() { 
     $this->webDriver->get($this->url); 
     // checking that page title contains word 'Test' 
     $this->assertContains('Test', $this->webDriver->getTitle()); 
    } 

} 

Howto die Abdeckung Treiber in Netbeans auf Linux installieren (Fedora 24) für einen Remote-Server? (und der Rahmen von Selen?)

Oder haben Sie ein gutes Dokument (Schritt für Schritt)?

UPDATE 1: Die Datei /tmp/nb-phpunit-coverage.xml leer ... Ich habe eine bug report.

Dank

+0

Selen adressiert Funktionstests, bei denen sich die Abdeckung auf die Anforderungen oder Anwendungsfälle bezieht. Was versuchst du hier zu erreichen? –

+0

Für den Moment versuche ich Netbeans zu testen. Ich klicke einfach auf Erstellen eines Tests auf der Indexseite mit nur phpinfo. Für info ... die Datei /tmp/nb-phpunit-coverage.xml ist leer ... Ich suche .. warum? –

Antwort

0

ich gefunden habe.

Es gibt 3 Probleme.

Installieren Sie die grundlegenden Werkzeuge von Netbeans

Zuerst Netbeans hat die notwendigen Werkzeuge für seine Schnittstellen nicht installieren. Also musst du PHPUnit und die anderen Tools manuell installieren (zum inspizieren/formatieren, etc.) Hier die beste Methode für mich:

Ich habe Composer installiert. Danach habe ich die Netbeans-Tools in meiner Entwicklungsumgebung installiert. :

Manchmal erkennen Netbeans diese Tools. Wenn es den guten Pfad nicht finden kann, müssen Sie in den Optionen von Netbeans den guten Pfad präzisieren.

Composer verschiebt diese Werkzeuge in "~/.config/composer/vendor /". Danach verschwindet das Problem mit PHPunit.

Zweitens, die Probleme von Selen.

Hier wird mein Ziel den ersten von Netbeans erzeugten Test ausführen.

Sie müssen die folgenden Schritte ausführen:

Schritt 1: Installieren Sie das WebDriver

# driver for selenium/php 
composer global require facebook/webdriver 

Schritt 2: Ändern Sie den Code der Test in Netbeans. Sie müssen den Include-Pfad ersetzen.

set_include_path('/home/karima/.config/composer'); 

use Facebook\WebDriver\Remote\DesiredCapabilities; 
use Facebook\WebDriver\Remote\RemoteWebDriver; 

require_once('vendor/autoload.php'); 

class MyFirstTest extends PHPUnit_Framework_TestCase { 

    /** 
    * @var \RemoteWebDriver 
    */ 
    protected $webDriver; 

    public function setUp() { 
     $capabilities = DesiredCapabilities::firefox(); 
     $this->webDriver = RemoteWebDriver::create('http://localhost:4444/wd/hub', $capabilities); 
    } 

    public function tearDown() { 
     $this->webDriver->close(); 
    } 

    protected $url = 'http://www.netbeans.org/'; 

    public function testSimple() { 
     $this->webDriver->get($this->url); 
     // checking that page title contains word 'NetBeans' 
     $this->assertContains('NetBeans', $this->webDriver->getTitle()); 
    } 

} 

Schritt 3: Download und unkomprimierte die letzte Veröffentlichung von geckodriver

Schritt 4: Bewegen geckodriver in einem Pfad des Systems

mv geckodriver /usr/bin/. 

Schritt 5: JAR von Selenium Standalone Server Downloads (I mit getestet 3.0.0-Beta2)

Schritt 6: Starten Sie den Selen-Server:

java -jar /home/karima/Téléchargements/selenium-server-standalone-3.0.0-beta2.jar 

Schritt 7: Sie können den Test jetzt in Netbeans ohne Fehler laufen, aber ...

Keine Code-Coverage-Treiber verfügbar ...

ich wieder zu suchen ...

ich hoffe, dass es andere helfen.