Bootstrap zum Integrationstest von WordPress-Plugins mit PHPUnit.
composer require --dev jdgrimes/wpppb
Zunächst benötigen Sie einen lokalen Checkout des WordPress-Entwicklungs-Repos, einschließlich des tests
. Der empfohlene Weg, dies zu erreichen, insbesondere wenn Sie beabsichtigen, zum WordPress-Kern beizutragen, ist VVV. WPPPB baut auf den Testtools auf, die bereits im WordPress-Kern enthalten sind, sodass es ohne sie nicht funktionieren wird.
Sobald Sie eine lokale Kopie des tests
von WordPress haben, können Sie das Setup-Skript für WPPPB ausführen:
vendor/bin/wpppb-init
Beantworten Sie die Fragen und schon kann es losgehen!
Ihre Tests werden im tests
abgelegt, das im Stammverzeichnis Ihres Projekts erstellt wird (dh neben dem von Composer hinzugefügten vendor
). Die Quelle Ihres Plugins (der Teil, der komprimiert und auf einer WordPress-Site installiert werden würde) befindet sich voraussichtlich in einem src
-Verzeichnis neben diesen beiden und nicht im Stammverzeichnis Ihres Projekts selbst. Eine Beispieldateistruktur würde so aussehen:
- src/
- my-plugin.php
- includes/
- etc.
- tests/
- vendor/
Mit ein paar Modifikationen könnten Sie WPPPB wahrscheinlich mit einer anderen Verzeichnisstruktur verwenden, aber das ist es, was es standardmäßig erwartet.
Sie können Ihre PHPUnit-Tests wie gewohnt ausführen:
phpunit
Sie können auch andere coole Dinge tun, wie zum Beispiel die Deinstallationsroutine Ihres Plugins testen.
(Beachten Sie, dass der Standard-Bootstrap den PHP-Autoloader von Composer verwendet, der PHP 5.3 erfordert. Anweisungen zur Verwendung mit PHP 5.2 finden Sie hier.)
Der Zweck dieses Projekts besteht darin, einen Bootstrap für Plugin-Entwickler bereitzustellen, die Integrationstests für ihr Plugin mithilfe der Testsuite des WordPress-Kerns durchführen möchten. Ziel ist es, dies nicht nur einfacher, sondern auch besser zu machen, indem eine Implementierung bereitgestellt wird, die die Tests so realistisch wie möglich macht.
Zu diesem Zweck aktiviert der Loader die Plugins aus der Ferne und lässt WordPress sie wie gewohnt laden. Dies ermöglicht realistischere Tests als das normalerweise durchgeführte manuelle Einbinden und Aktivieren der Plugins in die Aktion muplugins_loaded
.
Der Code dieses Projekts wird unter der MIT-Lizenz bereitgestellt.