Wenn du viele PHPUnit Test schreibst, dir dein Code Coverage direkt ansehen möchtest, aber  keine Zeit hast, darauf  zu warten bis die Coverage HTML-Datei bei phpUnderControl erstellt ist, dann kannst du die PHPUnit-Integration im Zend Studio direkt verwenden. So wollte ich es auch machen, jedoch hat das nicht sofort funktioniert. Mit der Hilfe meines Arbeitskollegen habe ich deshalb an der internen Library geschraubt.

Die PHPUnit-Integration des Zend Studios ist zwar schick, aber für spezifische Tests leider nicht zu gebrauchen. Da wir vor den Tests noch eine Bootstrap-Datei einbinden, die z.B. den Includepfad oder System-Interne-Konstanten setzt. PHPUnit bietet dazu die Kommandozeilenoption –bootstrap an, die leider nicht vom Zend Studio unterstützt wird. Die Suche im Internet hat ergeben, dass schon einige Entwickler dieses Problem hatten, aber Zend keine Lösung präsentiert.

Ich habe mir nun was zusammen gehackt, das mir das Einbinden der bootstrap.php im Zend Studio erlaubt. Einfach eine Testdatei oder ein Testverzeichnis im Package-Explorer auswählen und im Kontext-Menü „Run as PHPUnit…“

In der Datei „C:\Program Files\Zend\Zend Studio – 7.1.0\plugins\com.zend.php.phpunit_<DEINE VERSION>\resources\ZendPHPUnit.php“ ganz unten vor…

"ZendPHPUnitFilter::addFileToFilter(__FILE__);"

instanziiere ich je nach Test eine unserer Bootstrap Dateien…

include_once('D:/Gjero/Zend Studio 7.1 Workspaces/Lokal/Phlexible/tests/bootstrap.win.php');

Danach starte ich den Test im Zend Studio, und schon wird die Code Coverag HTML-Datei direkt im Editor dargestellt. So könnte die Ausgabe im Editor aussehen:

Hier ein Link zum Lernvideo: http://files.zend.com/webinar/EN_13_Zend_Studio_Neon_PHPUnit%20testing/

1 thought on “PHPUnit im Zend Studio

  1. @Alle: Habe paar Nachfragen bekommen wieso das doch nicht funktioniert. Leider habe ich vergessen dass Ihr in eurem IDE unter „Properties“->“PHP Include Path“ die „PHPUnit Library“ einfügen bzw. bekannt machen müsst.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

This site uses Akismet to reduce spam. Learn how your comment data is processed.