Hinweis: Der folgende Artikel hilft Ihnen dabei: Verwenden Sie WordPress-Testtools, um Ihr Plugin und Ihre Website zu erstellen. Führen Sie Unit-Tests in Github-Aktionen aus
Wir haben in letzter Zeit viel über Unit-Tests gesprochen, angefangen bei den Grundlagen bis hin zum Hinzufügen von Tests zu einem Plugin, damit Sie es in der Praxis sehen können. Wir haben auch erläutert, wie Sie Github-Aktionen verwenden, um Ihre Site automatisch auf Ihrem Host bereitzustellen. Heute nehmen wir Teile dieser beiden Konzepte und kombinieren sie, sodass wir unsere Tests automatisch mit Github-Aktionen ausführen, wenn wir neuen Code in das Repository übertragen.
Der einfachste Weg, den ich gefunden habe, ist mit WP-Testtools von Valu Digital. Das Team von Valu Digital hat eine ziemlich einfache Möglichkeit bereitgestellt, Ihre Tests auf Github Actions zum Laufen zu bringen. Wir werden nur darauf eingehen, wie Sie die Basisvorlage verwenden, um mit Ihrer Plugin-Entwicklung ganz von vorn zu beginnen, damit Sie Tests durchführen können. Das Hinzufügen ihres Test-Setups zu einem vorhandenen Plugin erfordert etwas mehr Arbeit.
Fügen Sie das WP Testing Tools Setup zu einem vorhandenen Plugin hinzu
Klonen Sie zunächst das Repository auf Ihren lokalen Computer.
[email protected]:valu-digital/wp-testing-tools.git Ihr-Plugin-Name
Als nächstes müssen wir den Plugins-Ordner aus dem Repository holen, da dieser die Basis für unser Plugin sein wird. Migrieren Sie diesen Ordner an den Ort, an dem Sie Ihr neues Plugin haben möchten, und benennen Sie ihn so um, dass er mit dem Plugin-Namen übereinstimmt, den Sie verwenden möchten.
Umgang mit Komponisten
Für diesen Testaufbau ist Composer erforderlich, mit dem Sie heute nicht besonders vertraut sein müssen. Ich werde Composer in einem zukünftigen Beitrag ausführlich behandeln. Zunächst müssen Sie Composer Install ausführen, um die erforderlichen Abhängigkeiten für WP Testing Tools zu installieren.
Leider habe ich festgestellt, dass im Repository einige erforderliche Composer-Pakete fehlen. Daher müssen wir mit den folgenden Befehlen sicherstellen, dass diese auch installiert werden.
Komponist benötigt Codeception/Module-Rest –dev
Komponist benötigt Codeception/module-phpbrowser –dev
Komponist benötigt Codeception/Module-DB –dev
Komponist benötigt Codeception/Module-Asserts –dev
Composer installieren
Moment, ich habe Speicherfehler bei Composer. Helfen! Es spielt wahrscheinlich keine Rolle und Sie sollten sie nicht in Github-Aktionen erhalten, sodass Sie sie vorerst ignorieren können.
Jetzt haben wir die richtigen Tools installiert, Sie können auf Github pushen und Sie werden sehen, dass die Unit-Tests ohne Probleme laufen. Dieses Plugin ist jedoch noch nicht bereit für eine Weiterentwicklung, also benennen wir die anderen darin enthaltenen Zeichenfolgen um und machen es zu unserem eigenen.
Einrichten von Plugin-Dateien
Wir können damit beginnen, die Plugin-Header-Informationen in der Datei „plugin.php“ umzubenennen. Benennen Sie es so, wie es zu Ihrem Plugin passt, und erstellen Sie den Autor selbst. Wir müssen auch die Namespace- und Klasseneinträge ändern, damit wir sie für unser Projekt richtig benennen. Ich ändere den Namespace in meinen Firmennamen und verwende PluginBase als Klassennamen für dieses Tutorial. Sie können meine umbenannte Arbeitsdatei unten sehen. Ich habe auch die Kommentare bereinigt, um sie leichter lesbar zu machen.
/**
* Plugin-Name: Hostinger – Github Actions Unit Tests
* Plugin-URI: https://nexcess.net
* Beschreibung: Plugin-Basis, die Unit-Tests mit Github-Aktionen ausführt
* Autor: Curtis McHale
* Version: 0.1.0
*
* @package-Beispiel
*/
if (!\class_exists(‘\Sfndesign\PluginBase’)) {
require_once __DIR__ . ‘/vendor/autoload.php’;
}
\Sfndesign\PluginBase::init();
Jetzt müssen wir auch in der Datei „composer.json“ einige Dinge ändern. Stellen Sie sicher, dass Sie als Autor des Plugins aufgeführt sind, und ändern Sie die Links zu Github-Problemen und -Quellen entsprechend Ihrem Repository. Sie müssen außerdem den Namensraum Ihres Plugins unter dem Autoload-Eintrag ändern. Ich verwende meinen Firmennamen, also lautet meiner „Sfndesign“. Sie können meine geänderte Datei „composer.json“ unten sehen.
{
„name“: „sfndesign/pluginbase“,
„description“: „Aktions-Plugin“,
„Typ“: „WordPress-Plugin“,
„Lizenz“: „GPL-2.0 oder höher“,
„Autoren“: [
{
“name”: “Curtis McHale”,
“email”: “[email protected]”,
“role”: “developer”
}
],
„require-dev“: {
„valu/wp-testing-tools“: „^0.4.0“,
„lucatume/wp-browser“: „~2.2“,
„codeception/module-rest“: „^1.2“,
“codeception/module-phpbrowser”: “^1.0”,
„codeception/module-db“: „^1.0“,
„codeception/module-asserts“: „^1.3“
},
„autoload“: {
„psr-4“: {
„Sfndesign\\“: „src/“
}
},
“Skripte”: {
„wp-install“: „wp-install –full –env-file .env –wp-composer-file Composer.wp-install.json“,
„wpunit“: „codecept run wpunit“,
„Functional“: „Codecept Run Functional“,
“prüfen”: [
“@wpunit”,
“@functional”
]
},
“config”: {
„optimize-autoloader“: wahr
},
“Unterstützung”: {
„issues“: „https://github.com/example/example/issues“,
„Quelle“: „https://github.com/example/example“
}
}
Jetzt müssen wir den Namen der Datei „Example.php“ im src-Verzeichnis ändern. Ich werde es PluginBase.php nennen, um bei dem Format zu bleiben, das wir verwendet haben. Öffnen Sie als Nächstes diese Datei und ändern Sie den Namespace in Sfndesign und den Klassennamen in PluginBase. Sie können die angepasste Datei unten sehen.
Namespace Sfndesign;
Klasse PluginBase {
öffentliche statische Funktion init() {
define( ‘EXAMPLE’, ‘initialized’ );
add_action(‘the_title’, function () {
return ‘EXAMPLE TITLE MOD’;
});
}
}
Nachdem wir diese Anpassungen vorgenommen haben, müssen wir Composer Update erneut ausführen, damit Composer die neuen Autoload-Pfade registriert, die für unsere umbenannten Dateien benötigt werden.
Um schließlich sicherzustellen, dass das Ganze gut funktioniert, finde ich es einfacher, den ursprünglichen Test in „tests/ExampleTest.php“ in etwas zu ändern, das in jedem Fall „true“ zurückgibt. Sie können diesen Code unten sehen.
öffentliche Funktion testInit()
{
$this->assertTrue(true);
}
Nachdem wir nun eingerichtet sind, können Sie Ihr Plugin als Git-Repository initialisieren und es dann an Github übertragen. Sobald Sie dies getan haben, sollte auf der Registerkarte „Aktionen“ für Ihr Repository eine Aktion angezeigt werden, und alles wird wieder grün angezeigt, da Ihr Komponententest ausgeführt wurde.
In den letzten Beiträgen haben wir Tests geschrieben und Github-Aktionen verwendet, um Teile unseres Prozesses zu automatisieren. Jetzt liegt es an Ihnen, diese Tools in Ihren Kundenprojekten zu verwenden. Sie werden später keine Tests mehr schreiben, also stellen Sie sicher, dass Sie Ihre Projekte von Anfang an mit Tests beginnen. Wenn Sie mit dem Testen noch tiefer gehen möchten, gibt es einen hervorragenden Kurs von Fränk Klein, der dies erklärt Unit-Tests in WordPress. Es steht bereits auf meiner Liste, die ich durchgehen muss, damit ich meine Testpraktiken verbessern kann.