V poslednej dobe sme veľa hovorili o jednotkových testoch, počnúc základmi a potom sme sa posunuli k pridávaniu testov do pluginu, aby ste to mohli vidieť v praxi. Tiež sme sa zaoberali tým, ako používať akcie Github na automatické nasadenie vašej lokality do vášho hostiteľa. Dnes si vezmeme kúsky z oboch týchto konceptov a skombinujeme ich, aby sme naše testy spúšťali automaticky s akciami Github, keď do úložiska vložíme nový kód.
Najjednoduchší spôsob, ako začať, je Nástroje na testovanie WP od spoločnosti Valu Digital. Tím vo Valu Digital poskytol pomerne jednoduchý spôsob, ako spustiť vaše testy na Github Actions. Zameriame sa len na to, ako používať ich základnú šablónu, aby ste mohli začať od začiatku s vývojom doplnku, aby ste mohli spustiť testy. Pridanie ich testovacieho nastavenia do existujúceho doplnku vyžaduje trochu viac práce.
Pridajte nastavenie WP Testing Tools do existujúceho doplnku
Ak chcete začať, naklonujte úložisko do svojho lokálneho počítača.
[email protected]:valu-digital/wp-testing-tools.git your-plugin-name
Ďalej musíme chytiť priečinok s doplnkami z úložiska, pretože to bude základ pre náš doplnok. Presuňte tento priečinok na miesto, kde chcete nový doplnok, a premenujte ho tak, aby zodpovedal názvu doplnku, ktorý chcete použiť.
Zaobchádzanie so skladateľom
Toto testovacie nastavenie vyžaduje Composer, s ktorým dnes už nemusíte byť dôverne oboznámení. Skladateľovi sa budem podrobne venovať v budúcom príspevku. Nateraz budete musieť spustiť inštaláciu skladateľa, aby ste nainštalovali požadované závislosti pre nástroje na testovanie WP.
Bohužiaľ som zistil, že v úložisku chýbajú niektoré požadované balíky Composer, takže sa musíme uistiť, že sú nainštalované aj pomocou nasledujúcich príkazov.
skladateľ vyžaduje codeception/module-rest –dev
skladateľ vyžaduje codeception/module-phpbrowser –dev
skladateľ vyžaduje codeception/module-db –dev
skladateľ vyžaduje codeception/module-asserts –dev
inštalácia skladateľa
Počkajte, v programe Composer sa vyskytli chyby pamäte. Pomoc! Pravdepodobne na tom nezáleží a nemali by ste ich získať v akciách Github, takže to môžete zatiaľ ignorovať.
Teraz máme nainštalované správne nástroje, môžete ich poslať na Github a uvidíte, že testy jednotiek prebehnú bez problémov. Tento doplnok však stále nie je pripravený na to, aby sme na ňom mohli stavať, takže poďme k premenovaniu ostatných reťazcov v ňom a prispôsobme si ho.
Nastavenie súborov doplnkov
Môžeme začať premenovaním informácií v hlavičke pluginu, ktoré sa nachádzajú v plugin.php. Pomenujte ho podľa toho, čo sa hodí k vášmu pluginu a autora si urobte sami. Budeme tiež musieť zmeniť menný priestor a položky tried, aby sme ich pre náš projekt pomenovali správne. Mením priestor názvov na názov mojej spoločnosti a ako názov triedy pre tento tutoriál používam PluginBase. Nižšie si môžete pozrieť môj pracovný premenovaný súbor. Tiež som vyčistil komentáre, aby sa to lepšie čítalo.
/**
* Názov doplnku: Hostinger – Github Actions Unit Tests
* Identifikátor URI doplnku: https://nexcess.net
* Popis: Základňa doplnkov, ktorá spúšťa testy jednotiek s akciami Github
* Autor: Curtis McHale
* Verzia: 0.1.0
*
* Príklad @balíka
*/
if (!\class_exists(‘\Sfndesign\PluginBase’)) {
vyžadovať_raz __DIR__ . ‘/vendor/autoload.php’;
}
\Sfndesign\PluginBase::init();
Teraz v súbore skladateľ.json musíme zmeniť aj niekoľko vecí. Uistite sa, že ste uvedený ako autor doplnku a zmeňte odkazy na problémy a zdroj Github tak, aby zodpovedali vášmu úložisku. Budete tiež musieť zmeniť menný priestor vášho doplnku pod položkou autoload. Používam názov svojej spoločnosti, takže môj hovorí Sfndesign. Môj zmenený súbor skladateľ.json si môžete pozrieť nižšie.
{
“name”: “sfndesign/pluginbase”,
“description”: “Doplnok Actions”,
“type”: “wordpress-plugin”,
“licencia”: “GPL-2.0-alebo-novšia”,
“autori”: [
{
“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/”
}
},
“scripts”: {
“wp-install”: “wp-install –full –env-file .env –wp-composer-file creator.wp-install.json”,
“wpunit”: “codecept spustiť wpunit”,
“funkčný”: “funkčný chod codeceptu”,
“test”: [
“@wpunit”,
“@functional”
]
},
“config”: {
“optimize-autoloader”: pravda
},
“podpora”: {
“issues”: “https://github.com/example/example/issues”,
“source”: “https://github.com/example/example”
}
}
Teraz musíme zmeniť názov súboru Example.php, ktorý sa nachádza v adresári src. Budem to nazývať PluginBase.php, aby som sa držal formátu, ktorý sme používali. Ďalej otvorte tento súbor a zmeňte menný priestor na Sfndesign a názov triedy na PluginBase. Upravený súbor si môžete pozrieť nižšie.
menný priestor Sfndesign;
class PluginBase {
verejná statická funkcia init() {
define( ‘PRÍKLAD’, ‘inicializované’ );
add_action(‘the_title’, function () {
návrat ‘EXAMPLE TITLE MOD’;
});
}
}
Teraz, keď sme vykonali tieto úpravy, musíme znova spustiť aktualizáciu skladateľa, aby Composer zaregistroval nové cesty automatického načítania, ktoré sú potrebné pre naše premenované súbory.
Nakoniec, aby som sa uistil, že celá vec funguje dobre, považujem za jednoduchšie zmeniť ich počiatočný test nájdený v testoch/ExampleTest.php na niečo, čo sa bez ohľadu na to vráti ako pravdivé. Tento kód môžete vidieť nižšie.
verejná funkcia testInit()
{
$this->assertTrue(true);
}
Teraz, keď sme nastavili, môžete inicializovať svoj doplnok ako úložisko git a potom ho poslať na Github. Keď to urobíte, mali by ste vidieť akciu spustenú na karte Akcie pre váš archív a všetko sa vráti na zeleno, pretože bol spustený test jednotky.
Počas niekoľkých posledných príspevkov sme napísali testy a použili Github Actions na automatizáciu častí nášho procesu. Teraz je len na vás, či tieto nástroje použijete vo svojich klientskych projektoch. Neskôr už nebudete písať testy, takže sa uistite, že svoje projekty začínate testami od začiatku. Ak chcete ísť s testovaním ešte hlbšie, existuje vynikajúci kurz od Fränka Kleina, ktorý to vysvetľuje Testovanie jednotiek vo WordPress. Už je to na mojom zozname, aby som si to prešiel, aby som sa mohol zlepšiť vo svojich testovacích postupoch.