Jak začít s testováním v Pythonu pomocí pytest: Różnice pomiędzy wersjami
Utworzono nową stronę "Pokud jde o strukturu projektu, neházejte všechno do jednoho souboru. Rozdělte kód na moduly – oddělte routes, controllers a služby pro práci s daty. Tím získáte přehlednost a usnadníte si testování. Pro menší API stačí i tři soubory, ale pro větší projekty je dobré zavést složkovou strukturu. Důležité je taky myslet na CORS – pokud vaše API budou volat prohlížeče z jiné domény, musíte povolit příslušné hlavičky, jinak po…" |
mNie podano opisu zmian |
||
| Linia 1: | Linia 1: | ||
Pokud | Postup převodu schématu a dat Pro převod schématu použijte nástroj jako pgloader nebo ruční skript. Pokud migrujete ručně, začněte vytvořením databáze v PostgreSQL a postupně vytvářejte tabulky. Nahraďte AUTO_INCREMENT za SERIAL nebo GENERATED AS IDENTITY, upravte ENUM na CREATE TYPE, a převeďte datumové a časové typy podle potřeby. Následně exportujte data z MySQL do CSV nebo SQL souboru a importujte je pomocí COPY nebo psql. Vždy před importem vypněte kontroly cizích klíčů, abyste předešli chybám pořadí.<br><br>Poslední rada: sledujte metriky, ale ne ty povrchní. Nesledujte jen, kolik nasazení proběhne za týden. Sledujte, jak rychle se daří obnovit službu po výpadku, jak dlouho trvá projít od změny kódu po produkci a jak často dochází k selhání nasazení. Tyto ukazatele vám řeknou víc než počet automatizovaných testů. Až budete mít vše stabilní, můžete postupně rozšiřovat rozsah – přidávat další prostředí, další týmy a další automatizaci.<br><br>Začněte tím, že si definujete výstup analýzy. Nejde o to napsat tlustý dokument, ale o to, aby měl tým jasno v akceptačních kritériích, hranicích systému a možných technických omezeních. V praxi to znamená odhadnout analytický čas podle počtu neznámých proměnných. Pokud máte úkol s vysokou nejistotou, věnujte analýze více času, ale vždy s jasným časovým limitem, aby se z ní nestala nekonečná rešerše. Užitečný je princip „timeboxing", kdy si analytik vyhradí konkrétní hodiny, po jejichž uplynutí se rozhodne, zda je třeba analýzu rozšířit, nebo ji předat k implementaci.<br><br>Nakonec si dejte pozor na příliš složité nástroje, které vyžadují rozsáhlé školení. I když mají bohaté možnosti, jejich konfigurace může být natolik komplexní, že ji tým nebude efektivně využívat. Raději zvolte nástroj, který je jednoduchý na pochopení a jeho nastavení je transparentní. Po nasazení sledujte, zda se snižuje počet konfliktů ve verzovacím systému a zda se noví členové týmu rychle zapracují. Pokud se tak nestane, znamená to, že konfigurace není dostatečně jednotná a je třeba ji upravit.<br><br>Typickým problémem je rozdílné chování prázdných řetězců a NULL. MySQL ukládá prázdný řetězec jako '', zatímco PostgreSQL rozlišuje mezi '' a NULL – pokud aplikace spoléhá na prázdný řetězec, může dojít k logickým chybám. Dále si pohlídejte práci s celočíselnými děleními: v MySQL je 5/2 rovno 2, v PostgreSQL je to 2.5, což může rozbít výpočty. Proveďte důkladný test všech dotazů, zejména těch, které používají agregační funkce, GROUP BY nebo poddotazy.<br><br>Nejprve si vytvořte kompletní inventář schématu: seznam tabulek, indexů, pohledů, triggerů a uložených procedur. V MySQL se často používají typy jako TINYINT, ENUM nebo AUTO_INCREMENT, zatímco PostgreSQL preferuje SMALLINT, vlastní enum typy a sekvence. Při převodu datových typů dejte pozor na rozdíly v práci s řetězci: MySQL porovnává texty case-insensitive podle collation, PostgreSQL je case-sensitive, což může změnit výsledky dotazů.<br><br>Nejprve je potřeba pytest nainstalovat. To provedete příkazem pip install pytest v terminálu. Po instalaci vytvořte soubor s názvem test_example.py. Název musí začínat nebo končit slovem test, aby pytest soubor automaticky našel. V tomto souboru definujte funkce, jejichž názvy také začínají test_. Uvnitř funkcí použijte běžné assert pro ověření výsledku. Pytest pak spustíte příkazem pytest v adresáři s testem.<br><br>Jak zjistit reálný poměr mezi analýzou a kódováním Místo odhadů „od oka" použijte historická data z předchozích sprintů. Podívejte se, kolik času skutečně zabrala analýza a kolik implementace u podobných úkolů. Zjistíte, že některé typy úkolů, jako jsou změny v databázovém schématu nebo napojení na externí služby, vyžadují výrazně více analytické práce. Naopak rutinní úpravy formulářů nebo hlášek mívají analýzu krátkou. Tato data vám umožní kalibrovat odhad podle reálné historie, nikoli podle přání.<br><br>Když se řekne API, mnoho začátečníků si představí něco složitého a nedostupného. Přitom jde o jednoduchý koncept: API je rozhraní, které umožňuje dvěma programům spolu komunikovat. Můžeš si ho představit jako číšníka v restauraci – objednáš jídlo (pošleš požadavek) a on ti donese výsledek (odpověď). Pro první kroky nemusíš mít žádné speciální nástroje, stačí ti prohlížeč a textový editor.<br><br>Testování je nedílnou součástí vývoje softwaru, a pokud píšete v Pythonu, pytest je jedním z nejpoužívanějších nástrojů. Jeho hlavní výhoda spočívá v jednoduché syntaxi – testy píšete jako obyčejné funkce, bez nutnosti tříd nebo speciálních dekorátorů. Díky tomu se snadno učí a dobře se čte. V tomto článku si ukážeme, jak začít, na co si dát pozor a jak se vyhnout častým chybám. | ||
Wersja z 18:57, 21 sie 2026
Postup převodu schématu a dat Pro převod schématu použijte nástroj jako pgloader nebo ruční skript. Pokud migrujete ručně, začněte vytvořením databáze v PostgreSQL a postupně vytvářejte tabulky. Nahraďte AUTO_INCREMENT za SERIAL nebo GENERATED AS IDENTITY, upravte ENUM na CREATE TYPE, a převeďte datumové a časové typy podle potřeby. Následně exportujte data z MySQL do CSV nebo SQL souboru a importujte je pomocí COPY nebo psql. Vždy před importem vypněte kontroly cizích klíčů, abyste předešli chybám pořadí.
Poslední rada: sledujte metriky, ale ne ty povrchní. Nesledujte jen, kolik nasazení proběhne za týden. Sledujte, jak rychle se daří obnovit službu po výpadku, jak dlouho trvá projít od změny kódu po produkci a jak často dochází k selhání nasazení. Tyto ukazatele vám řeknou víc než počet automatizovaných testů. Až budete mít vše stabilní, můžete postupně rozšiřovat rozsah – přidávat další prostředí, další týmy a další automatizaci.
Začněte tím, že si definujete výstup analýzy. Nejde o to napsat tlustý dokument, ale o to, aby měl tým jasno v akceptačních kritériích, hranicích systému a možných technických omezeních. V praxi to znamená odhadnout analytický čas podle počtu neznámých proměnných. Pokud máte úkol s vysokou nejistotou, věnujte analýze více času, ale vždy s jasným časovým limitem, aby se z ní nestala nekonečná rešerše. Užitečný je princip „timeboxing", kdy si analytik vyhradí konkrétní hodiny, po jejichž uplynutí se rozhodne, zda je třeba analýzu rozšířit, nebo ji předat k implementaci.
Nakonec si dejte pozor na příliš složité nástroje, které vyžadují rozsáhlé školení. I když mají bohaté možnosti, jejich konfigurace může být natolik komplexní, že ji tým nebude efektivně využívat. Raději zvolte nástroj, který je jednoduchý na pochopení a jeho nastavení je transparentní. Po nasazení sledujte, zda se snižuje počet konfliktů ve verzovacím systému a zda se noví členové týmu rychle zapracují. Pokud se tak nestane, znamená to, že konfigurace není dostatečně jednotná a je třeba ji upravit.
Typickým problémem je rozdílné chování prázdných řetězců a NULL. MySQL ukládá prázdný řetězec jako , zatímco PostgreSQL rozlišuje mezi a NULL – pokud aplikace spoléhá na prázdný řetězec, může dojít k logickým chybám. Dále si pohlídejte práci s celočíselnými děleními: v MySQL je 5/2 rovno 2, v PostgreSQL je to 2.5, což může rozbít výpočty. Proveďte důkladný test všech dotazů, zejména těch, které používají agregační funkce, GROUP BY nebo poddotazy.
Nejprve si vytvořte kompletní inventář schématu: seznam tabulek, indexů, pohledů, triggerů a uložených procedur. V MySQL se často používají typy jako TINYINT, ENUM nebo AUTO_INCREMENT, zatímco PostgreSQL preferuje SMALLINT, vlastní enum typy a sekvence. Při převodu datových typů dejte pozor na rozdíly v práci s řetězci: MySQL porovnává texty case-insensitive podle collation, PostgreSQL je case-sensitive, což může změnit výsledky dotazů.
Nejprve je potřeba pytest nainstalovat. To provedete příkazem pip install pytest v terminálu. Po instalaci vytvořte soubor s názvem test_example.py. Název musí začínat nebo končit slovem test, aby pytest soubor automaticky našel. V tomto souboru definujte funkce, jejichž názvy také začínají test_. Uvnitř funkcí použijte běžné assert pro ověření výsledku. Pytest pak spustíte příkazem pytest v adresáři s testem.
Jak zjistit reálný poměr mezi analýzou a kódováním Místo odhadů „od oka" použijte historická data z předchozích sprintů. Podívejte se, kolik času skutečně zabrala analýza a kolik implementace u podobných úkolů. Zjistíte, že některé typy úkolů, jako jsou změny v databázovém schématu nebo napojení na externí služby, vyžadují výrazně více analytické práce. Naopak rutinní úpravy formulářů nebo hlášek mívají analýzu krátkou. Tato data vám umožní kalibrovat odhad podle reálné historie, nikoli podle přání.
Když se řekne API, mnoho začátečníků si představí něco složitého a nedostupného. Přitom jde o jednoduchý koncept: API je rozhraní, které umožňuje dvěma programům spolu komunikovat. Můžeš si ho představit jako číšníka v restauraci – objednáš jídlo (pošleš požadavek) a on ti donese výsledek (odpověď). Pro první kroky nemusíš mít žádné speciální nástroje, stačí ti prohlížeč a textový editor.
Testování je nedílnou součástí vývoje softwaru, a pokud píšete v Pythonu, pytest je jedním z nejpoužívanějších nástrojů. Jeho hlavní výhoda spočívá v jednoduché syntaxi – testy píšete jako obyčejné funkce, bez nutnosti tříd nebo speciálních dekorátorů. Díky tomu se snadno učí a dobře se čte. V tomto článku si ukážeme, jak začít, na co si dát pozor a jak se vyhnout častým chybám.