Psaní testů jednotek pro Python pomocí Průzkumníka testů v sadě Visual Studio
Testy jednotek jsou části kódu, které testují jiné jednotky kódu v aplikaci, obvykle izolované funkce, třídy atd. Když aplikace projde všemi testy jednotek, můžete mít jistotu, že alespoň funkce programu nízké úrovně jsou správné.
Python používá testy jednotek k rozsáhlému ověření scénářů při návrhu programu. Podpora Pythonu v sadě Visual Studio zahrnuje zjišťování, spouštění a ladění testů jednotek v kontextu vývojového procesu, aniž by bylo nutné spouštět testy samostatně.
Tento článek obsahuje stručný přehled možností testování částí v sadě Visual Studio s Pythonem. Další informace o testování jednotek obecně najdete v tématu Testování jednotek kódu.
Požadavky
Visual Studio ve Windows nainstalované s podporou úloh Pythonu Další informace najdete v tématu Instalace podpory Pythonu v sadě Visual Studio.
Projekt Pythonu s kódem nebo složkou s kódem Pythonu
Visual Studio pro Mac se nepodporuje. Další informace najdete v tématu Co se děje s Visual Studio pro Mac? Visual Studio Code ve Windows, Mac a Linuxu funguje dobře s Pythonem prostřednictvím dostupných rozšíření.
Výběr testovací architektury pro projekt Pythonu
Visual Studio podporuje dvě testovací rozhraní pro Python, unittest a pytest (k dispozici v sadě Visual Studio 2019 verze 16.3 a novější). Ve výchozím nastavení není při vytváření projektu Pythonu vybrána žádná architektura.
Pomocí následujícího postupu vyberte testovací architekturu pro váš projekt Pythonu:
V Průzkumník řešení klikněte pravým tlačítkem myši na název projektu a vyberte Vlastnosti.
V podokně Vlastnosti projektu vyberte kartu Test a zvolte typ testovací architektury:
Pro architekturu unittest visual Studio přiřadí kořenový adresář projektu pro zjišťování testů. Výchozí hodnota je
.
, ale při konfiguraci nastavení projektu můžete zadat jiné umístění. Můžete také zadat jeden nebo více řetězců pro vzor testovacího názvu souboru, napříkladtest*.py, test_*.py
.Pro architekturu pytest jsou možnosti testování, jako je umístění testu a vzory souborů, určeny pomocí standardního konfiguračního souboru pytestu .ini . Ve výchozím nastavení se pro umístění používá složka pracovního prostoru nebo projektu. Výchozí vzor názvu souboru obsahuje
test_*py
a*_test.py
. Další informace najdete v referenční dokumentaci k pytestu.
Poznámka:
Při definování vzoru názvu souboru mějte na paměti, že speciální znaky jako podtržítko (
_
) se neshodují se zástupným znakem (*
). Pokud chcete v názvu souboru použít speciální znaky, zadejte tyto znaky v definici vzoru, napříkladtest_*.py
.K uložení výběru a nastavení architektury můžete použít klávesovou zkratku Ctrl+S .
Po nakonfigurování architektury visual Studio zahájí zjišťování testů a otevře Průzkumníka testů.
Konfigurace testování pro Python bez projektu
Visual Studio umožňuje spouštět a testovat existující kód Pythonu bez projektu otevřením složky s kódem Pythonu. V tomto scénáři musíte ke konfiguraci testování použít soubor Python Nastavení.json.
Otevřete existující kód Pythonu pomocí možnosti Otevřít místní složku :
Když otevřete složku Pythonu, Visual Studio vytvoří několik skrytých složek pro správu nastavení souvisejících s programem. Pokud chcete tyto složky (a všechny ostatní skryté soubory a složky, jako je složka .git) zobrazit v Průzkumník řešení, vyberte možnost Zobrazit všechny soubory:
V Průzkumník řešení rozbalte složku Místní Nastavení a poklikejte na soubor Python Nastavení.json otevřete soubor v editoru.
Poznámka:
Většina konfigurací zobrazuje dva soubory nastavení: Python Nastavení.json a Project Nastavení.json. V tomto cvičení je potřeba upravit soubor Python Nastavení.json.
Pokud soubor Pythonu nevidíte Nastavení.json ve složce Místní Nastavení, můžete ho vytvořit ručně:
Klikněte pravým tlačítkem na složku Místní Nastavení a vyberte Přidat>nový soubor.
Pojmenujte soubor Python Nastavení.json a uložte provedené změny výběrem klávesy Enter.
Visual Studio automaticky otevře nový soubor v editoru.
Do souboru Python Nastavení.json přidejte následující kód, který definuje
TestFramework
. Nastavte hodnotu architektury na pytest nebo unittest v závislosti na požadované testovací rozhraní:{ "TestFramework": "unittest", "UnitTestRootDirectory": "testing", "UnitTestPattern": "test_*.py" }
Pokud pro architekturu unittest nedefinujete konkrétní hodnoty pro
UnitTestRootDirectory
hodnoty aUnitTestPattern
nastavení v souboru Python Nastavení.json, Visual Studio tato pole automaticky přidá s výchozími hodnotami.
atest*.py
v uvedeném pořadí.Pro architekturu pytest jsou možnosti konfigurace vždy zadány v konfiguračním souboru pytest .ini , nikoli prostřednictvím nastavení sady Visual Studio.
Pokud váš program Pythonu obsahuje složku src oddělenou od složky, která obsahuje vaše testy, zadejte cestu ke složce src s
SearchPaths
nastavením v souboru Python Nastavení.json:"SearchPaths": [".\\src"]
Uložte změny do souboru Python Nastavení.json.
Po nakonfigurování architektury sada Visual Studio zahájí zjišťování testů pro zadanou architekturu. K testu se dostanete v Průzkumníku testů.
Přidání a zjišťování testů
Visual Studio ve výchozím nastavení identifikuje unittest a pytest testy jako metody, jejichž názvy začínají test
.
Pokud chcete zjistit, jak Visual Studio zahájí zjišťování testů, postupujte takto:
Otevřete projekt Pythonu v sadě Visual Studio.
Nastavte vlastnosti testovací architektury pro projekt, jak je popsáno v části Výběr testovací architektury pro projekt Pythonu.
V Průzkumník řešení klikněte pravým tlačítkem myši na projekt a vyberte Přidat>novou položku.
V dialogovém okně Přidat novou položku vyberte typ souboru Python Unit Test .
Zadejte název souboru, který splňuje definici vzoru, kterou jste zadali pro vlastnosti projektu.
Vyberte Přidat.
Visual Studio vytvoří testovací soubor s výchozím kódem:
import unittest class Test_test1(unittest.TestCase): def test_A(self): self.fail("Not implemented") if __name__ == '__main__': unittest.main()
Tento kód importuje standardní
unittest
modul a odvozuje testovací třídu zunittest.TestCase
metody. Když skript spustíte přímo, tento kód také vyvoláunittest.main()
funkci.
Když přidáte nové testovací soubory, Visual Studio je zpřístupní v Průzkumníku testů.
Zobrazení testů pomocí Průzkumníka testů
Jakmile nakonfigurujete testovací architekturu a testovací soubory, Visual Studio vyhledá testy a zobrazí je v Průzkumníku testů.
Tady je několik způsobů, jak můžete pracovat s Průzkumníkem testů:
Otevřete okno Průzkumníka testů výběrem Průzkumníka testů>.
Po otevření okna Průzkumníka testů použijte klávesovou zkratku CTRL+R, A k aktivaci zjišťování testů.
Poklikáním na test v Průzkumníku testů otevřete odpovídající zdrojový soubor v editoru:
Uspořádejte zobrazení testů pomocí možnosti Seskupovat podle na panelu nástrojů:
Filtrování testů podle názvu zadáním textu do vyhledávacího pole:
Spusťte testy a zobrazte stav testovacího spuštění, jak je popsáno v další části.
Další informace o unittest
modulu a psaní testů najdete v dokumentaci k Pythonu.
Spouštění testů pomocí Průzkumníka testů
V Průzkumníku testů můžete testy spouštět několika způsoby:
- Výběrem možnosti Spustit vše (testy v zobrazení) spustíte všechny testy zobrazené v aktuálním zobrazení na základě nastavení filtru.
- Příkazy v nabídce Spustit můžete použít ke spuštění neúspěšných, úspěšných nebo neúspěšných testů jako skupiny.
- Vyberte jeden nebo více testů a potom klikněte pravým tlačítkem myši a vyberte možnost Spustit vybrané testy .
Visual Studio spouští testy na pozadí. Průzkumník testů aktualizuje stav každého testu, jakmile se dokončí:
Úspěšné testy zobrazují zelené zaškrtnutí a čas dokončení testovacího běhu:
Neúspěšné testy zobrazují červený X s odkazem Výstup , který zobrazuje výstup konzoly a
unittest
výstup z testovacího spuštění:
Kontrola testů pomocí ladicího programu
Testy jednotek jsou části kódu, které podléhají chybám jako jakýkoli jiný kód a občas je potřeba spustit v ladicím programu. V ladicím programu sady Visual Studio můžete nastavit zarážky, prozkoumat proměnné a krokovat kód. Visual Studio také poskytuje diagnostické nástroje pro testy jednotek.
Zkontrolujte tyto body týkající se kontroly testů pomocí ladicího programu sady Visual Studio:
Ve výchozím nastavení používá ladění ladění ladění pro Visual Studio 2019 verze 16.5 a novější. Některé starší verze sady Visual Studio používají ladicí program ptvsd 4 . Pokud používáte starší verzi sady Visual Studio a dáváte přednost ladicím programu ptvsd 3, vyberte možnost Použít starší ladicí program v části Možnosti>nástrojů>Ladění Pythonu.>
Chcete-li spustit ladění, nastavte počáteční zarážku v kódu, klikněte pravým tlačítkem myši na test (nebo výběr) v Průzkumníku testů a vyberte Ladit vybrané testy. Visual Studio spustí ladicí program Pythonu tak, jak by to bylo pro kód aplikace.
Pokud chcete, můžete použít analýzu pokrytí kódu pro vybrané testy. Další informace najdete v tématu Použití pokrytí kódu k určení, kolik kódu je testováno.