Příručka:Kontrolní seznam před potvrzením
Toto je pokus o vytvoření seznamu kontrol, který se použije před odevzdáním. Některé z nich duplikují to, co je v konvencích kódování, ale mají formu rychlých kontrol. Tento kontrolní seznam je ve stejném duchu jako The Checklist Manifesto. Některé z nich se mohou zdát hloupé (např. zeptat se lékaře "umyl sis ruce?"), ale jejich účelem je vyhnout se problémům, které lze přehlédnout.
Back-end (PHP) (server)
- Spustil se váš kód pod
E_STRICT
bez chyb?[1] - Porušil váš kód některý z testů jednotek? Podívejte se na stránku Příručka:Testování PHP kódu .
- Otestovali jste všechny výstupní body z vašeho kódu?
- Použili jste k odsazení tabulátory místo mezer?
- Odstranili jste nadbytečný, komentovaný ladicí kód? (např.
#var_dump( $array );
a/nebo#die();
) - Pokud jste vytvořili novou funkci, zadokumentovali jste parametry funkce a co vrací pomocí Doxygen?
- Vytvořili jste nějaké identifikátory, které nepoužívaly camelCase (tj. podtržítka)?
- Je testována každá výjimka?
- Pokud máte více návratových bodů, jsou testovány?
- Existuje každá zpráva , kterou jste vytvořili v
languages/i18n/en.json
, máte dokumentaci ke zprávě vlanguages/i18n/qqq.json
? - Je každé použití
fopen()
,fread()
atd. zkontrolováno na chyby nebo problémy? - Použili jste příznaky
t
nebob
nafopen()
, abyste zajistili kompatibilitu Windows? - Použili jste správné výstupní funkce?
echo
by se neměl téměř nikdy používat. - Použili jste správné ukončovací funkce?
exit
by se neměl téměř nikdy používat. - Použili jste tam, kde je to vhodné, funkce obalu MediaWiki místo jejich ekvivalentů PHP?
wfIniGetBool()
- místoini_get
, abyste získali booleovské parametry.- Informace o přístupu k databázi viz Příručka:Přístup k databázi#Vrstva abstrakce databáze .
- Pokud jste k
parserTests.txt
přidali nový test, dali jste mu nový název? - Pokud jste přidali nový háček, zdokumentovali jste to ?
Testování
Při přidávání funkcí je důležité ověřit, zda jste neporušili stávající funkce. Máme tři druhy testů, které můžete pro backendový kód napsat:
- Parser tests - Otestujte výstup analyzátoru pro wikitext (viz
tests/parser/parserTests.php
). Zkuste spustitphp tests/parser/parserTests.php --quick --quiet
a uvidíte, jak to funguje. Vše by mělo teoreticky projít. Můžete přidat nové testy nebo opravit stávající úpravoutests/parser/parserTests.txt
. - Testy jednotek (PHPUnit) - Nachází se v adresáři
tests/phpunit
. Obvykle se spouštějí pomocí příkazucomposer phpunit:entrypoint
vyvolaného z adresáře MediaWiki. Tyto testy také zahrnují běžné testy analyzátoru, ačkoliparserTests.php
pravděpodobně funguje rychleji. Přečtěte si{{$1|Příručka:Testování jednotek PHP}}
pro více informací o tom, jak nastavit PHPUnit a další podrobnosti o tom, jak se používá v MediaWiki. - Selenium - testy jsou v adresáři
tests/selenium
.
Každopádně, pokud nemůžete napsat automatický test, proveďte ruční testování. Pokud způsobujete rozbití příliš často, lidé se na vás budou zlobit.
Front-end (klient)
- Testováno ve skutečném prohlížeči? Nejmenší změny by mohly rozbít věci, které nejsou zřejmé. Otevřete prohlížeč, procházejte se, možná proveďte úpravy, přihlaste se, přidejte stránku do seznamu sledovaných.
- Porušil váš kód některý z testů jednotek? Podívejte se na stránku Příručka:Testování jednotek JavaScriptu
- Bude to fungovat alespoň v prohlížečích, které podporujeme pro funkce třídy A (zkontrolujte Compatibility#Browsers )?
- Existují nějaké implikované globální hodnoty jiné než
jQuery
nebomediaWiki
? Nemělo by tam být (ani ne$
)
Automatické testování
Když jsou změny odeslány do Gerrit a schváleny, provádí Jenkins některé testy na většině úložišť. Před provedením opravy byste měli tyto testy spustit lokálně. Mnoho rozšíření implementuje standardní Průběžná integrace/vstupní body , takže před potvrzením můžete spustit npm test a grunt test.
Ve skutečnosti nebudete vždy ručně testovat každou změnu. Záleží na tom, jak velké selhání může být a zda pro změnu existují dobré jednotkové testy.
- Ověřuje to (nebo jste to alespoň spustili) JSHint nebo JSLint? (check recommended settings )
- Unit testy (QUnit): Nachází se v adresáři
tests/qunit
. Obvykle se spouštějí z prohlížeče prostřednictvím Special:JavaScriptTest/qunit. Přečtěte si Příručka:Testování jednotek JavaScriptu pro více informací o tom, jak to povolit, jak to funguje a různé možnosti, které jsou k dispozici.
Poznámky pod čarou
- ↑ Vložte
error_reporting(-1);
do vstupního souboru. Více na stránce Příručka:Jak řešit chyby .