Sdílet prostřednictvím


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. 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íku ř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 pytest .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 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 PythonSettings.json .

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

  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, například složku .git ) zobrazit v Průzkumníku řešení, vyberte možnost Zobrazit všechny soubory :

  3. V Průzkumníku řešení rozbalte složku Místní nastavení a poklikáním otevřete soubor PythonSettings.json v editoru.

    Poznámka:

    Většina konfigurací zobrazuje dva soubory nastavení: PythonSettings.json a ProjectSettings.json. V tomto cvičení je potřeba upravit souborPythonSettings.json .

    Pokud nevidíte soubor PythonSettings.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 PythonSettings.jsona uložte změny výběrem klávesy Enter .

    Visual Studio automaticky otevře nový soubor v editoru.

  4. Do souboruPythonSettings.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 framework unittest nedefinujete konkrétní hodnoty pro UnitTestRootDirectory a UnitTestPattern nastavení v souboru PythonSettings.json, Visual Studio tato pole automaticky přidá s výchozími hodnotami . a test*.py, v tomto pořadí.

    • Pro architekturu pytest se možnosti konfigurace vždy zadají 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 PythonSettings.json :

      "SearchPaths": [".\\src"]
    
  6. Uložte změny do souboruPythonSettings.json .

Po nakonfigurování frameworku zahájí Visual Studio zjišťování testů pro zadaný framework. K testu se dostanete v Průzkumníku testů.

Přidání a objevová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 v jazyce Python v aplikaci 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íku ř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íka testů výběremPrů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 neprovedený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ý křížek s odkazem Výstup, který zobrazuje výstup konzoly a také výstup ze spuštění testu:

Kontrola testů pomocí ladicího programu

Jednotkové testy jsou kousky kódu, které mohou obsahovat chyby stejně jako jakýkoliv jiný kód a občas je potřeba je spustit v debuggeru. V ladicím programu sady Visual Studio můžete nastavit lomy, prozkoumat proměnné a procházet kód. Visual Studio také poskytuje diagnostické nástroje pro testy jednotek.

Zkontrolujte následující body, které se týkají testování pomocí Visual Studio Debuggeru:

  • Ve výchozím nastavení používá ladění testeru debugpy 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 částiMožnosti>nástrojů>Ladění>.

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