Unittest

1. Einleitung

PHPUnit ist ein Framework zum Erstellen von Unittests und deren Ausführung, mit der Möglichkeit zur Automatisierung und der Ansprechung über eine CLI. Einzelne Tests bis hin zu größeren Test-Suites (Eine Test-Suite beinhaltet normalerweise mehrere Tests, die in einer gewissen vorgegebenen Reihenfolge ablaufen) sind möglich und erhöhen die Stabilität und Wartbarkeit einer Anwendung. Es gehört zum Grundgerüst der Continous Development/Integration, erstellte Tests mehr als nur einmal auszuführen und zu testen, ob Änderungen am Quellcode Auswirkungen auf Teile der Applikation haben, an die man als Entwickler selbst gar nicht gedacht hat. Natürlich stecken noch viel mehr an Möglichkeiten in Unittests, dies ist aber der grundlegende Zweck, um das äußere Verhalten einer Implementierung auf ihre korrekte Funktionsweise zu prüfen.

2. Installation

Voraussetzung für das Durchführen von Unittests mit dem Adventure PHP Framework ist das PHPUnit-Framework. Dieses gibt es frei verfügbar über mehrere Quellen. Im Folgenden werden zwei mögliche Bezugsquellen erläutert.

2. Installation mittels PEAR

Eine bequeme Möglichkeit, sich das PHPUnit-Framework zu besorgen, ist PEAR. Neben der einfachen Bereitstellung ist ein Aktualisieren der Daten bequem über die PEAR-CLI möglich. Die meisten All-In-One Lösungen wie beispielsweise XAMPP bieten zumindest den PEAR-Installer, wenn nicht sogar schon teilweise vorinstallierte PEAR-Pakete an. Im Folgenden wird von einer installierten PEAR-Umgebung ausgegangen, mehr Informationen gibt es unter PEAR-Installation.

Die Installation des PHPUnit-Framework läuft nun einfach und schnell ab. Dazu ruft man lediglich die Kommandozeile auf und gibt folgende Eingaben ein:

Shell
pear config-set auto_discover 1 pear install pear.phpunit.de/File_Iterator pear install pear.phpunit.de/Text_Template pear install pear.phpunit.de/PHP_CodeCoverage pear install pear.phpunit.de/PHP_Timer pear install pear.phpunit.de/PHPUnit_MockObject pear install pear.phpunit.de/PHPUnit

Folgende Pakete kann man sich noch optional dazu herunterladen:

Shell
pear install phpunit/DbUnit pear install phpunit/PHPUnit_Selenium pear install phpunit/PHPUnit_Story pear install phpunit/PHPUnit_TestListener_DBUS pear install phpunit/PHPUnit_TestListener_XHProf pear install phpunit/PHPUnit_TicketListener_Fogbugz pear install phpunit/PHPUnit_TicketListener_GitHub pear install phpunit/PHPUnit_TicketListener_GoogleCode pear install phpunit/PHPUnit_TicketListener_Trac pear install phpunit/PHP_Invoker

2. Installation mittels GIT

Eine zweite Möglichkeit ist das Herunterladen von GIT. Weiter Inforamtionen findet man unter der offiziellen Anleitung. Hat man einen GIT-Client, so kann man mit folgenden Befehlen über die Kommandozeile sich einfach das PHPUnit-Framework laden:

Shell
mkdir phpunit && cd phpunit git clone git://github.com/sebastianbergmann/phpunit.git git clone git://github.com/sebastianbergmann/dbunit.git git clone git://github.com/sebastianbergmann/php-file-iterator.git git clone git://github.com/sebastianbergmann/php-text-template.git git clone git://github.com/sebastianbergmann/php-code-coverage.git git clone git://github.com/sebastianbergmann/php-token-stream.git git clone git://github.com/sebastianbergmann/php-timer.git git clone git://github.com/sebastianbergmann/phpunit-mock-objects.git git clone git://github.com/sebastianbergmann/phpunit-selenium.git git clone git://github.com/sebastianbergmann/phpunit-story.git git clone git://github.com/sebastianbergmann/php-invoker.git

3. Konfiguraton

Hat man nun das PHPUnit-Framework, gibt es nicht mehr viel zu tun, um endlich die Unittests über das Adventure PHP Framework zum Laufen zu bringen.

Zunächst wechselt man in das Unterverzeichnis tests. Dort liegen unter anderem zwei Dateien, die kopiert und umbenannt werden.

Shell
cp phpunit.dist.xml phpunit.xml cp phpunit.dist phpunit

Die Datei phpunit ist das Skript, welches von der Kommandozeile aufgerufen wird und die PHPUnit-Applikation anlaufen lässt. Bevor man das Skript erfolgreich aufrufen kann, muss zunächst die Datei geöffnet werden und der Wert der Konstante PHPUNIT_INCLUDE_PATH mit dem korrekten Pfad zum PHPUnit-Framework angepasst werden.
Auf Windows-basierten System empfiehlt es sich, den Wert der zweiten Konstante PHP_BIN_FILENAME in php.exe umzuändern.

4. Ausführung

Nun ist es möglich, das Skript von der Kommandozeile wie folgt im Verzeichnis ../branches/php5/1.15/ auszuführen:

Shell
php phpunit

Das Skript prüft automatisch auf die Standard-Konfigurationsdatei phpunit.xml, welche bereits im aktuellen Verzeichnis existiert.
Wenn alles korrekt konfiguriert wurde, läuft nun das Skript an und führt die in der Konfiguration angegebenen Tests durch.

5. Eigene Unittests

Falls eigene Tests oder Erweiterungen der Bestehenden ausgeführt werden soll, muss lediglich die Konfigurationsdatei phpunit.xml angepasst werden (und natürlich der jeweilige Test geschrieben werden).

Zur Konfiguration von PHPStorm für die Entwicklung und das Ausführen von APF-UnitTests lesen Sie bitte die Hinweise im Wiki-Artikel Setup UnitTest-Umgebung in PHPStorm.

Kommentare

Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
Für diesen Artikel liegen aktuell keine Kommentare vor.