© saicle/Shutterstock.com
Unit Tests mit Shopware

Unit Tests mit Shopware


Aufbauend auf dem Shopware-Plug-in der letzten Ausgabe werden wir diesmal folgende Dinge bearbeiten: das Einrichten einer geeigneten Testumgebung für Unit Tests, die Ausführung der vorhandenen Tests und die Entwicklung eines eigenen Unit Tests für das SloganOfTheDay-Plug-in.

In der vergangenen Ausgabe haben Oliver Denter und Stephan Pohl ein Plug-in entwickelt, welches das Shop­logo durch einen zufälligen Slogan ersetzt, der vorher konfiguriert werden konnte. Darauf aufbauend wollen wir nun einen Unit Test erstellen. Wer das Plug-in benötigt, kann es unter GitHub herunterladen. Wir werden unseren Test auf die vorhandenen Tests, die Shopware auf GitHub veröffentlicht hat, aufbauen. In Zukunft soll es ein eigenes Unit-Test-Framework speziell für die Plug-in-Entwicklung geben [1].

Testumgebung

Als Testumgebung benötigen wir einen Webserver, der die Shopware-Voraussetzungen erfüllt. Darüber hinaus wird das PEAR-Modul PHPUnit mit der Erweiterung DBUnit benötigt. Wer bereits eine funktionierende Testumgebung inklusive einer lauffähigen Installation des Shopware-Masterbranches von GitHub vorliegen hat, kann diesen Abschnitt getrost überspringen.

Als Grundlage für unser Testsystem verwenden wir eine minimale Installation von Debian. Alle weiteren benötigten Module und Einstellung sind unter [2] detailliert beschrieben. Zusätzlich zu den Shopware-Voraussetzungen benötigen wir PHP-Pear und PHPUnit mit der Erweiterung DBUnit auf unserem Testsystem, zu installieren wie folgt:

pear config-set auto_discover 1 pear install pear.phpunit.de/PHPUnit pear install phpunit/DbUnit

Nachdem wir nun alle Bedingungen erfüllt haben, können wir uns an die Installation des aktuellen Masterbranches von Shopware machen. Dazu klonen wir den aktuellen Masterbranch per git clone (https://github.com/ShopwareAG/shopware-4.git). Anschließend setzen wir die benötigten Verzeichnisrechte wie folgt:

chmod 755 config.php chmod 755 -R cache chmod 755 -R files chmod 755 -R media chmod 755 -R engine/Library/Mpdf/tmp chmod 755 -R engine/Library/Mpdf/ttfontdata chmod 755 -R engine/Shopware/Plugins/Community

Je nach Serverkonfiguration kann es sein, dass die Rechte 755 nicht ausreichen und der Server die vollen Rechte 777 benötigt. Mithilfe von Ant (ggfs. muss Ant noch installiert werden) und einer von Shopware bereitgestellten Konfigurationsdatei können wir mit folgendem Aufruf unsere Datenbankverbindung einrichten und die notwendigen Datenbanktabellen importieren:

cd build/ ant -Ddb.user=#user# -Ddb...

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