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 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:

  1. V Průzkumník řešení klikněte pravým tlačítkem myši na název projektu a vyberte Vlastnosti.

  2. 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říklad test*.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říklad test_*.py.

  3. 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.

  1. Otevřete existující kód Pythonu pomocí možnosti Otevřít místní složku :

    Snímek obrazovky, který ukazuje, jak vybrat možnost Otevřít místní složku při spuštění sady Visual Studio 2022

    Snímek obrazovky, který ukazuje, jak vybrat možnost Otevřít místní složku při spuštění sady Visual Studio

  2. 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:

    Snímek obrazovky, který ukazuje, jak zobrazit skryté složky a soubory v Průzkumník řešení v sadě Visual Studio 2022

    Snímek obrazovky znázorňující, jak zobrazit skryté složky a soubory v Průzkumník řešení v sadě Visual Studio

  3. 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ě:

    1. Klikněte pravým tlačítkem na složku Místní Nastavení a vyberte Přidat>nový soubor.

    2. 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.

  4. 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 a UnitTestPattern nastavení v souboru Python Nastavení.json, Visual Studio tato pole automaticky přidá s výchozími hodnotami . a test*.pyv 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.

  5. 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"]
    
  6. 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:

  1. Otevřete projekt Pythonu v sadě Visual Studio.

  2. Nastavte vlastnosti testovací architektury pro projekt, jak je popsáno v části Výběr testovací architektury pro projekt Pythonu.

  3. V Průzkumník řešení klikněte pravým tlačítkem myši na projekt a vyberte Přidat>novou položku.

    1. V dialogovém okně Přidat novou položku vyberte typ souboru Python Unit Test .

    2. Zadejte název souboru, který splňuje definici vzoru, kterou jste zadali pro vlastnosti projektu.

    3. Vyberte Přidat.

  4. 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 z unittest.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íkatestů 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:

    Snímek obrazovky znázorňující výchozí zobrazení testu v Průzkumníku testů v sadě Visual Studio 2022

    Snímek obrazovky znázorňující výchozí zobrazení testu v Průzkumníku testů

  • Uspořádejte zobrazení testů pomocí možnosti Seskupovat podle na panelu nástrojů:

    Snímek obrazovky, který ukazuje, jak uspořádat zobrazení testů v Průzkumníku testů s možností Seskupit podle v sadě Visual Studio 2022

    Snímek obrazovky, který ukazuje, jak uspořádat zobrazení testů v Průzkumníku testů s možností Seskupit podle

  • Filtrování testů podle názvu zadáním textu do vyhledávacího pole:

    Snímek obrazovky, který ukazuje, jak filtrovat zobrazení testů v Průzkumníku testů pomocí vyhledávacího pole

    Snímek obrazovky, který ukazuje, jak filtrovat zobrazení testů v Průzkumníku testů pomocí 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:

    Snímek obrazovky znázorňující stav úspěšného testu v Průzkumníku testů v sadě Visual Studio 2022

    Snímek obrazovky znázorňující stav úspěšného testu v Průzkumníku testů

  • 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í:

    Snímek obrazovky znázorňující podrobnosti o stavu a důvodu neúspěšného testu v Průzkumníku testů v sadě Visual Studio 2022

    Snímek obrazovky znázorňující stav neúspěšného testu v Průzkumníku testů

    Snímek obrazovky znázorňující důvod neúspěšného testu v Průzkumníku testů

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.

    Snímek obrazovky, který ukazuje, jak ladit test jednotek pomocí ladicího programu sady Visual Studio 2022

    Snímek obrazovky, který ukazuje, jak ladit test jednotek pomocí ladicího programu sady Visual Studio

  • 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.