Pytest versus unittest: co zvolit pro testování v Pythonu

From IT-Core
Jump to navigation Jump to search


Když už máte obraz hotový, neuškodí ho zmenšit. Základní obrazy jako node nebo python obsahují spoustu nástrojů, které k běhu nepotřebujete. Použijte variantu s příponou -alpine, která je výrazně menší. Jen pozor, že některé balíčky vyžadují kompilaci a v Alpine chybí standardní knihovny, takže občas musíte doinstalovat build-essential. Dále se vyplatí spojovat více příkazů do jednoho RUN a na konci odstranit dočasné soubory, aby se nezvyšovala velikost vrstvy. Například: RUN apt-get update && apt-get install -y nějaký-balík && rm -rf /var/lib/apt/lists/*.

S fixtures souvisí i správa stavu. Často potřebujete vyčistit databázi nebo smazat dočasné soubory. Místo opakování kódu v každém testu definujte fixture, která se postará o přípravu i úklid pomocí yield. Po skončení testu se kód za yieldem provede. Tím se vyhnete znečištění prostředí. Další častou chybou je spoléhat na pořadí testů. Testy by měly být izolované a nezávislé. Když jeden test změní globální stav, může to ovlivnit jiný. Pytest nabízí možnost spouštět testy náhodně, ale to nevyřeší špatný návrh. Lepší je každý test nechat vytvořit si vlastní data.

Když se vám podaří projít prvních pět rekonstrukce koupelny krok za krokemů, získáte solidní základ. Kontejnery nejsou kouzlo, ale nástroj, který vyžaduje disciplínu. Nevěřte ale tomu, že stačí jedno naučení a hotovo. Docker se vyvíjí a přibývají nové postupy. Pokud se budete držet jednoduchosti, čistoty a budete si hlídat, co přesně děláte, vyhnete se většině začátečnických nástrah.

Kde najít ztracený čas? V komunikačních a integračních bodech Největší nepřesnost vzniká u činností, které nejsou přímo vidět na výstupu. Například dolaďování rozhraní s backendem, řešení konfliktů při mergi větví, čekání na odpověď kolegy, setup lokálního prostředí nebo nasazení barvy stěn do obýváku stagingu. Tyto úkony se často ignorují, protože je nelze naplánovat dopředu, ale v součtu zaberou klidně celý den. Pokud je to možné, odhadněte je zvlášť a přičtěte je k hlavnímu úkolu až na konci.

Docker dnes patří k základním nástrojům každého vývojáře. Umožňuje zabalit aplikaci i všechny její závislosti do jednoho obrazu, který pak můžete spustit kdekoli – na notebooku, v testovacím prostředí i na produkčním serveru. Pro začátečníka je ale snadné udělat několik zásadních chyb, které vedou k pomalým obrazům, zbytečným konfliktům nebo dokonce k bezpečnostním děrám. Tento článek vám ukáže, jak rekonstrukce koupelny krok za krokemčít správně, čemu se vyhnout a jak si usnadnit každodenní práci.

Pokud si nejste jisti, přičtěte na konec rezervu 20–30 procent. Není to známka neschopnosti, ale ochrany před nepředvídatelnými komplikacemi. Vyhnete se tím stresu a slibům, které nemůžete dodržet. Pamatujte, že přesný odhad neexistuje, ale dobrý odhad je takový, který zahrnuje i to, co není vidět na první pohled. Vyplatí se proto pár minut navíc na rozmyšlenou, než začnete slibovat termín.

Na závěr si řekněte, jak kontejner spouštět a zastavovat. Nikdy nespouštějte více procesů v jednom kontejneru – pokud potřebujete webový server i databázi, použijte docker-compose. Ten umožňuje definovat více služeb v jednom souboru a spustit je jedním příkazem. Přitom si dejte pozor na síť: kompose vytvoří výchozí síť, ve které se služby navzájem oslovují jménem, takže v kódu použijte název služby místo localhostu. A pokud kontejner nepotřebujete, vždy ho smažte příkazem docker rm, abyste nezahlcovali disk. Tímto způsobem se vyhnete nejčastějším začátečnickým nástrahám a Docker se stane vaším spolehlivým pomocníkem.

Jak psát první testy a čemu se vyhnout Funkce označené jako testy začínají slovem test_. V nich používáte běžné příkazy assert, které ověřují chování. Například ověříte, že funkce vrací očekávanou hodnotu. Pytest na rozdíl od unittestu nevyžaduje třídy ani dědičnost. Stačí obyčejné funkce. If you have just about any inquiries with regards to wherever as well as the best way to work with Rekonstrukce bytu, you are able to contact us on the webpage. Typická chyba začátečníků: testovat více věcí najednou. Když selže první assert, zbytek se nespustí. Proto pište jeden test pro jednu logickou jednotku. Pokud potřebujete připravit data, použijte fixture – funkci s dekorátorem @pytest.fixture. Ta se spustí před testem a může vracet objekty, které test použije.

B3da je nástroj, který se často objevuje v kontextu projektů s písmenem V. Pokud ho chcete využít správně, musíte nejdřív pochopit, co znamená jeho název a jaké operace s ním lze provádět. V praxi se setkáte s tím, že B3da není univerzální řešení, ale spíše konkrétní pomůcka pro specifický typ úloh. Než začnete, ověřte si, zda váš projekt skutečně vyžaduje tento nástroj, nebo zda ho jen chcete použít, protože je zrovna po ruce. To je častý omyl, který vede ke ztrátě času i úsilí.