Manual:JavaScript unit testing/cs

MediaWiki používá QUnit k unit test své báze kódu JavaScript.



Spuštění z prohlížeče

 * 1) Nastavte  na . (Toto je již nastaveno, pokud používáte  nebo MediaWiki-Vagrant.)
 * 2) Visit Special:JavaScriptTest in a browser to run the tests.



Spuštění z příkazového řádku


Jednorázové nastavení
Vstupte do izolovaného prostředí, kde máte Node.js a npm. [https://timotijhof.net/posts/2019/protect-yourself-from-npm/ Why? ]

Pokud používáte MediaWiki-Docker:


 * Zvažte použití Fresh
 * Run  from the MediaWiki core directory. (Fresh automaticky najde MW adresu v Dockerově souboru  .)
 * Jakmile jste uvnitř svého izolovaného shellu, spusťte  pro instalaci nebo aktualizaci všech závislostí.

Pokud používáte MediaWiki-Vagrant:


 * Ensure environment variables  and   are set (consider saving this to  ):
 * Spusťte  z adresáře MediaWiki-Vagrant.
 * Jakmile jste uvnitř Vagrant VM. přejděte do hlavního adresáře MediaWiki a spusťte.

Pokud používáte jiné nastavení:


 * Ensure environment variables  and   are set (consider saving this to  ):
 * Zvažte použití Fresh, nebo pokud již máte izolované prostředí, zajistěte, aby byla nainstalována srovnatelná verze Node.js a npm (předposlední LTS by měla stačit).
 * Přejděte do hlavního adresáře MediaWiki a spusťte.

Spuštění
Toto spouští testy QUnit v Headless Chrome:

Pomocí volby  můžete spustit testy QUnit pro konkrétní komponenty. Předejte název rozšíření nebo vzhledu nebo  na základní testy MediaWiki.

] Argument  pro QUnit můžete použít ke sledování souborů přidružených ke komponentě a automaticky znovu spustit testy, pokud se tyto soubory změní.



Jak se zapojit?


Spuštění testu před potvrzením
Zvykněte si spouštět testy jednotek před potvrzením a odesláním změn do.



Psaní testů jednotek
for new functionality, and consider fillling gaps in coverage when changing existing.



Psaní testu
Je obvyklé pojmenovat soubor testovací sady podle modulu, který pokrývá. For example,  covers the   module.

Inside the test suite should be a call to  with the module name.

Testy jednotek pro jádro MediaWiki jsou umístěny v adresáři.



Zaregistrování testu


Jádro MediaWiki
Testovací sady se přidávají k registraci modulu  v.

Testy jsou organizovány do adresářové struktury, která odpovídá adresářové struktuře testovaného kódu. Například: Unit test na  lze nalézt na.

Příklad:

Rozšíření
Extensions register their QUnit tests via the attribute in.



Související odkazy

 * Writing Testable JavaScript (květen 2013), Rebecca Murphey, A List Apart
 * Writing Testable JavaScript (květen 2013), Rebecca Murphey, A List Apart
 * Writing Testable JavaScript (květen 2013), Rebecca Murphey, A List Apart