Navigation
SIT - Schneider Internet-Technologien

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
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 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 PhpStormPreferences → und dann im linken Menü auf Languages & FrameworksPHP 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
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
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
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
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 & FrameworksPHPPHPUnit 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
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.