Příručka:Kontrolní seznam před potvrzením

This page is a translated version of the page Manual:Pre-commit checklist and the translation is 98% complete.
Outdated translations are marked like this.

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ě v languages/i18n/qqq.json?
  • Je každé použití fopen(), fread() atd. zkontrolováno na chyby nebo problémy?
  • Použili jste příznaky t nebo b na fopen(), 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?
  • 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 spustit php 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í úpravou tests/parser/parserTests.txt.
  • Testy jednotek (PHPUnit) - Nachází se v adresáři tests/phpunit. Obvykle se spouštějí pomocí příkazu composer phpunit:entrypoint vyvolaného z adresáře MediaWiki. Tyto testy také zahrnují běžné testy analyzátoru, ačkoli parserTests.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 nebo mediaWiki? 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

  1. Vložte error_reporting(-1); do vstupního souboru. Více na stránce Příručka:Jak řešit chyby .