© saicle/Shutterstock.com
Mit Codeception innerhalb von wenigen Minuten Projekte testen

Fangt einfach an!


Der Vorteil von automatisierten Tests liegt auf der Hand: Neben der Zeitersparnis gegenüber dem manuellen Klicken ist das kontrollierte Abrufen von Seiten mit vorher definierten Tests eine zusätzliche Kontrolle der eigenen Arbeit – und das schon während der Entwicklung. Dass das Schreiben von Tests für die eigene Applikation kein Hexenwerk ist und schnell von der Hand geht, werde ich in diesem Artikel mittels des Testtools Codeception nachweisen.

Codeception [1] ist ein Framework zum automatisierten Testen von Webapplikationen. Es nutzt Selenium und WebDriver zur Fernsteuerung der gebräuchlichsten Browser sowie den Headless-Browser PhantomJS. Zum Testen von Projekten installiert man auf dem Mac mit den folgenden Kommandos die benötigten Pakete. Zusätzlich braucht man Composer:

brew install selenium-server-standalone brew install phantomjs brew install chromedriver

Installation

Im zu testenden Projekt laden und installieren wir Codeception. Der folgende Befehl erstellt die grundlegende Ordnerstruktur und die Konfigurationsdateien:

cd /path/to/my/project wget http://codeception.com/codecept.phar php codecept.phar bootstrap

Wir haben jetzt in unserem Projektordner zusätzlich den Ordner /tests/ mit verschiedenen Unterordnern für die verschiedenen Testszenarien und den Output sowie die ausführbare Datei codecept.phar und die Hauptkonfigurationsdatei codeception.yml (Abb. 1).

Damit sind wir nun startklar. Die Eingabe von php codecept.phar zeigt die verfügbaren Kommandos.

mautz_codeception_1.tif_fmt1.jpgAbb. 1: Liste der Codeception-Kommandos

Konfiguration

Die Hauptkonfiguration in der codeception.yml regelt die generellen Settings. Für die ersten Tests reichen zwar die Standardsettings, ich empfehle zusätzlich aber das Codeception-Modul Recorder, um Screenshots beim Testen erzeugen zu lassen, die man später sehr gut sichten kann. Die Konfiguration wird aus diesem Grund um weitere Extensions erweitert (Listing 1).

Listing 1

extensions: enabled: - Codeception\Extension\RunFailed - Codeception\Extension\Recorder config: Codeception\Extension\Recorder: delete_successful: true

Sollte es jetzt in einem Test zu einem Fehler kommen, hat man direkt beim Auftreten des Fehlers einen Screenshot der betreffenden Seite im Zustand des Tests. Das spart Zeit beim Auffinden und Kommunizieren des Fehlers.

Testen

Codeception unterstützt sowohl Akzeptanz- und Unit Tests als auch funktionale Tests. Wir werden uns an dieser Stelle um die Akzeptanztests kümmern, also um das Testen der Website aus Usersicht. Diese...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang