mamweb/make
Pavel "LEdoian" Turinsky af6628367f Testy: Schováváme si databázi napříč běhy
Při běžení testů nejdéle trvá namigrovat (prázdnou) databázi. Toto tento
krok přeskočí.

By default django pro testy používá in-memory SQLite3 databázi, která se
schovat přirozeně nedá. Používání souborů trvá déle (data níž), ale
další běhy už jsou rychlé.

Zatím nevím, jestli se někde nemůže omylem schovávat nějaký nežádoucí
stav, ale testy mi i opakovaně běží, takže se to asi nerozbíjí úplně
moc. Na první pohled je uložená databáze prázdná.

Pro produkci a CI bych klidně běžel testy od nuly, tam nevadí čekat pár
desítek sekund až jednotky minut na výsledek. Tato optimalizace je
důležitá jen pro lokální vývoj, kde je žádoucí mít testy co
nejrychlejší.

V .gitignore už přesně toto jméno souboru je. Nevím proč, ale možná to
tak bylo by default v některém dávném Djangu.

Data
---
Spouštěl jsem příkaz `time ./manage.py test [--keepdb] api`. Běhy byly
relativně konzistentní (±1 s) a trvaly u mě:
- In memory SQLite (default): 26 s
- První spuštění s db na disku (HDD): 44 s
- Následná spuštění: 7.7 s
Data jsou nejspíš zkreslena tím, že všechno je nejspíš nacachované v
systému, ale i tak je vidět zřetelné zrychlení.

Původní motivace: úplně triviální a nedatabázový test na starém
notebooku běžel kolem 3:14, což je zoufale nepoužitelné když si chci
napsat testy jako pomůcku pro vývoj.
2023-01-04 01:51:02 +01:00
..
deploy fixup! testweb heslo 2022-11-21 20:59:14 +01:00
deploy_prod make/lib: safe_checkout_branch stačí 1 parametr 2022-11-20 04:40:03 +01:00
init_local init_local 2022-11-21 22:17:52 +01:00
install Fix symlink 2022-11-07 22:34:54 +01:00
install_web Makefile reforma vol.2 [WIP] 2022-11-07 23:14:06 +01:00
lib.sh hotfix: 485c4180 má špatně proměnnou 2022-12-19 21:25:37 +01:00
push_compiled_vue_to_test Hezčí SSH spojení 2022-11-20 04:23:41 +01:00
README.md make/README.md: Víc fancy, použít make/init_local 2022-11-21 22:51:39 +01:00
run ensure_web_installed 2022-11-21 21:59:38 +01:00
schema ensure_web_installed 2022-11-21 21:59:38 +01:00
sync_prod_flatpages ensure_web_installed 2022-11-21 21:59:38 +01:00
sync_test Zbytek sync_test 2022-11-15 12:17:50 +01:00
sync_test_db_aggressive Shellcheck :-) 2022-11-20 05:08:24 +01:00
sync_test_media fix 2022-11-21 21:03:58 +01:00
test Testy: Schováváme si databázi napříč běhy 2023-01-04 01:51:02 +01:00

Milý člověče, M&Mí web tě vítá. Prosím, neděs se, zkusím tě provést lokálním zprovozněním webu. Pro detaily a nápovědu si prosím přečti dokumentaci v docs/vyvoj.rst.

TL;DR: Web vyrobíš pomocí následující posloupnosti příkazů: make/init_local make/run a web potom najdeš na http://127.0.0.1:8000