Tutorial
LAMP-VM für Mac OS X
PhpStorm für PHPUnit einrichten
PhpStorms External Libraries
Zum Abschluss wollen wir PhpStorm noch beibringen, wie es Unit-Tests remote auf unserem Server ausführen kann. Bevor wir PHPUnit für ein kleines Beispielprojekt konfigurieren, richten wir das Test-Framework noch als External Library in PhpStorm ein.
Dazu laden wir das aktuelle PHPUnit .phar-File und legen es irgendwo auf unserem Mac ab. Dann fügen wir die .phar-Datei als External Library unserem Projekt hinzu.
External Library in PhpStorm
Im Anschluss sollten PhpStorm Klassen wie \PHPUnit_Framework_TestCase bekannt sein. Übrigens können wir so mit beliebigen PHP-Frameworks umgehen, die wir vielleicht auf unserer VM installieren möchten, etwa Symfony-Komponenten oder das Zend-Framework.
PHPUnit als External Library in PhpStorm
PHPUnit via Remote Interpreter ansteuern
Als nächstes konfigurieren wir einen Remote-Interpreter für PHPUnit. In PhpStorm klicken wir im Hauptmenü auf PhpStorm → Preferences → und dann im linken Menü auf Languages & Frameworks → PHP und dann auf PHPUnit. Dort fügen wir einen PHPUnit Settings Type by Remote Interpreter hinzu und stoßen, wenn wir an dieser Stelle vorher noch nichts konfiguriert haben, auf ein leeres Auswahlfeld.
PhpStorm - PHPUnit - leere Auswahl an Remote Interpretern
Wir klicken auf die drei Punkte neben dem leeren Auswahlfeld und erhalten ein neues, leeres Menü. Hier fügen wir einen Interpreter hinzu mit den im Bild ersichtlichen Einstellungen.
PhpStorm Remote Interpreter auf unserer VM
Nun klicken wir uns zurück zur Auswahl des Remote-Interpreters, in dem wir die Dialoge bestätigen, bis wir den Remote-Interpreter auswählen können. Am Ende befinden wir uns wieder in der PHPUnit-Konfiguration und können z. B. den Pfad zu unserer Bootstrap-Datei angeben. Bei mir sieht es dann z. B. so aus.
Die fertigen PHPUnit Remote Interpreter-Einstellungen
Nun sind wir in der Lage, Unit-Tests über die IDE auszuführen. Wir klicken eine Unit-Test-Datei rechts an und wählen Run. Das gleiche sollte mit einem ganzen Testordner funktionieren.
PHPUnit in PhpStorm ausführen
Unterstützung von Code Coverage
Wer noch Gebrauch von der Code Coverage-Analyse machen möchte, benötigt statt der oben gezeigten Bootstrap-Datei eine XML-Konfiguration für PHPUnit, da man seit der 5er-Version von PHPUnit hierfür eine Whitelist angeben muss. Dies funktioniert meines Wissens nur mit so einer XML-Konfiguration.
Im PhpStorm-Hauptenü unter Preferences unter Languages & Frameworks → PHP → PHPUnit geben wir dazu den Pfad zu einer XML-Konfigurations-Datei, die dann auch den Pfad zur Bootstrap-Datei enthalten kann. Eine minimale PHPUnit-XML-Konfiguration sähe z. B. so aus:
<phpunit bootstrap="bootstrap.php">
<testsuites>
<testsuite name="all">
<directory>test</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>src</directory>
</whitelist>
</filter>
</phpunit>
PhpStorm mit PHPUnit Code Coverage
Das war's.
Das war's mit meinem Tutorial. Fragen, Anregungen und konstruktive Kritik nehme ich natürlich gern entgegen. Meine Kontaktdaten sind hier hinterlegt.