Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Testy jednostkowe to fragmenty kodu, które testują inne jednostki kodu w aplikacji, zazwyczaj izolowane funkcje, klasy itd. Gdy aplikacja przejdzie wszystkie testy jednostkowe, możesz mieć pewność, że co najmniej funkcjonalność programu niskiego poziomu jest poprawna.
Język Python intensywnie używa testów jednostkowych do weryfikowania scenariuszy podczas projektowania programu. Obsługa języka Python w programie Visual Studio obejmuje odnajdywanie, wykonywanie i debugowanie testów jednostkowych w kontekście procesu programowania bez konieczności oddzielnego uruchamiania testów.
Ten artykuł zawiera krótki opis możliwości testowania jednostkowego w programie Visual Studio z językiem Python. Aby uzyskać więcej informacji na temat testowania jednostkowego, zobacz Unit test your code (Testowanie jednostkowe kodu).
Wymagania wstępne
Program Visual Studio w systemie Windows zainstalowany z obsługą obciążeń języka Python. Aby uzyskać więcej informacji, zobacz Instalowanie obsługi języka Python w programie Visual Studio.
Projekt w języku Python z kodem lub folderem z kodem w języku Python.
Program Visual Studio dla komputerów Mac nie jest obsługiwany. Program Visual Studio Code w systemach Windows, Mac i Linux dobrze współpracuje z językiem Python za pośrednictwem dostępnych rozszerzeń.
Wybieranie platformy testowej dla projektu w języku Python
Program Visual Studio obsługuje dwie struktury testowania dla języków Python, unittest i pytest (dostępne w programie Visual Studio 2019 w wersji 16.3 lub nowszej). Domyślnie podczas tworzenia projektu w języku Python nie jest wybierana żadna struktura.
Wykonaj następujące kroki, aby wybrać platformę testową dla projektu języka Python:
W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy nazwę projektu i wybierz polecenie Właściwości.
W okienku Właściwości projektu wybierz kartę Test i wybierz typ struktury testowej :
Dla struktury unittest program Visual Studio przypisuje katalog główny projektu do odnajdywania testów. Wartość domyślna to
., ale można określić inną lokalizację podczas konfigurowania ustawień projektu. Można również określić jeden lub więcej ciągów dla wzorca nazwy pliku testowego, na przykładtest*.py, test_*.py.W przypadku struktury pytest opcje testowania, takie jak lokalizacja testu i wzorce nazw plików, są określane przy użyciu standardowego pliku konfiguracji pytest.ini . Domyślnie folder workspace/project jest używany dla lokalizacji. Domyślny wzorzec nazwy pliku zawiera
test_*pyi*_test.py. Aby uzyskać więcej informacji, zobacz dokumentację referencyjną narzędzia pytest.
Uwaga / Notatka
Podczas definiowania wzorca nazwy pliku pamiętaj, że znaki specjalne, takie jak znak podkreślenia (
_), nie są dopasowywane przez symbol wieloznaczny (*). Jeśli chcesz użyć znaków specjalnych w nazwie pliku, określ te znaki w definicji wzorca, takie jaktest_*.py.Aby zapisać wybór i ustawienia struktury, możesz użyć skrótu klawiaturowego Ctrl+S .
Po skonfigurowaniu frameworku, program Visual Studio inicjuje wyszukiwanie testów i otwiera Eksploratora testów.
Konfigurowanie testowania dla języka Python bez projektu
Program Visual Studio umożliwia uruchamianie i testowanie istniejącego kodu w języku Python bez projektu, otwierając folder za pomocą kodu w języku Python. W tym scenariuszu należy użyć pliku PythonSettings.json do skonfigurowania testowania.
Otwórz istniejący kod języka Python przy użyciu opcji Otwórz folder lokalny :
Po otwarciu folderu języka Python program Visual Studio tworzy kilka ukrytych folderów w celu zarządzania ustawieniami związanymi z programem. Aby wyświetlić te foldery (i inne ukryte pliki i foldery, takie jak folder .git ) w Eksploratorze rozwiązań, wybierz opcję Pokaż wszystkie pliki :
W Eksploratorze rozwiązań rozwiń folder Ustawienia lokalne , a następnie kliknij dwukrotnie plik PythonSettings.json , aby otworzyć plik w edytorze.
Uwaga / Notatka
Większość konfiguracji pokazuje dwa pliki ustawień: PythonSettings.json i ProjectSettings.json. W tym ćwiczeniu należy zmodyfikować plik PythonSettings.json .
Jeśli nie widzisz pliku PythonSettings.json w folderze Ustawienia lokalne , możesz utworzyć go ręcznie:
Kliknij prawym przyciskiem myszy folder Ustawienia lokalne i wybierz polecenie Dodaj>nowy plik.
Nadaj plikowi nazwęPythonSettings.json, a następnie wybierz Enter , aby zapisać zmiany.
Program Visual Studio automatycznie otwiera nowy plik w edytorze.
W pliku PythonSettings.json dodaj następujący kod, aby zdefiniować element
TestFramework. Ustaw wartość frameworka na pytest lub unittest, w zależności od wybranego frameworka testowego.{ "TestFramework": "unittest", "UnitTestRootDirectory": "testing", "UnitTestPattern": "test_*.py" }Jeśli w przypadku struktury unittest nie zdefiniujesz określonych wartości dla
UnitTestRootDirectoryustawień iUnitTestPatternw pliku PythonSettings.json , program Visual Studio automatycznie doda te pola z wartościami.domyślnymi itest*.py.W przypadku struktury pytest opcje konfiguracji są zawsze określane w pliku konfiguracji pytest .ini , a nie za pomocą ustawień programu Visual Studio.
Jeśli program w języku Python zawiera folder src oddzielony od folderu zawierającego testy, określ ścieżkę do folderu src z ustawieniem
SearchPathsw pliku PythonSettings.json :"SearchPaths": [".\\src"]Zapisz zmiany w pliku PythonSettings.json .
Po skonfigurowaniu frameworka program Visual Studio inicjuje odnajdywanie testów dla określonego frameworka. Dostęp do testu można uzyskać w Eksploratorze testów.
Dodawanie i odnajdywanie testów
Domyślnie program Visual Studio identyfikuje testy unittest i pytest jako metody, których nazwy zaczynają się od test.
Aby zobaczyć, jak program Visual Studio inicjuje wykrywanie testów, wykonaj następujące kroki:
Otwórz projekt w języku Python w programie Visual Studio.
Ustaw właściwości struktury testowej dla projektu zgodnie z opisem w temacie Select test framework for Python project (Wybieranie struktury testowej dla projektu języka Python).
W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz polecenie Dodaj>nowy element.
W oknie dialogowym Dodawanie nowego elementu wybierz typ pliku Test jednostkowy języka Python .
Wprowadź nazwę pliku spełniającą definicję wzorca określoną dla właściwości projektu.
Wybierz Dodaj.
Program Visual Studio tworzy plik testowy z domyślnym kodem:
import unittest class Test_test1(unittest.TestCase): def test_A(self): self.fail("Not implemented") if __name__ == '__main__': unittest.main()Ten kod importuje moduł standardowy
unittesti uzyskuje klasę testowąunittest.TestCasez metody . Po bezpośrednim uruchomieniu skryptu ten kod również wywołuje funkcjęunittest.main().
Po dodaniu nowych plików testowych program Visual Studio udostępnia je w Eksploratorze testów.
Wyświetlanie testów za pomocą Eksploratora testów
Po skonfigurowaniu struktury testowej i plików testowych program Visual Studio wyszukuje testy i wyświetla je w Eksploratorze testów.
Poniżej przedstawiono niektóre sposoby pracy z Eksploratorem testów:
Otwórz okno Eksplorator testów, wybierając pozycję Eksplorator testów>.
Po otwarciu okna Eksploratora testów użyj skrótu klawiaturowego CTRL+R, A , aby wyzwolić odnajdywanie testów.
Kliknij dwukrotnie test w Eksploratorze testów , aby otworzyć odpowiedni plik źródłowy w edytorze:
Organizuj widok testów przy użyciu opcji Grupuj według na pasku narzędzi:
Filtruj testy według nazwy, wprowadzając tekst w polu Wyszukaj :
Uruchom testy i wyświetl stan przebiegu testu zgodnie z opisem w następnej sekcji.
Aby uzyskać więcej informacji na temat modułu unittest i pisania testów, zobacz dokumentację języka Python.
Uruchamianie testów za pomocą Eksploratora testów
W Eksploratorze testów można uruchamiać testy na kilka sposobów:
- Wybierz pozycję Uruchom wszystko (testy w widoku), aby wykonać wszystkie testy wyświetlane w bieżącym widoku na podstawie ustawień filtru.
- Użyj poleceń w menu Uruchom, aby uruchomić testy nieudane, przekazane lub te, które nie zostały uruchomione, w grupie.
- Wybierz co najmniej jeden test, a następnie kliknij prawym przyciskiem myszy i wybierz opcję Uruchom wybrane testy .
Program Visual Studio uruchamia testy w tle. Eksplorator testów aktualizuje stan każdego testu w miarę jego ukończenia:
Wyniki testów pokazują zielony znacznik i czas ukończenia przebiegu testu:
Testy, które zakończyły się niepowodzeniem, pokazują czerwony znak X z linkiem Dane wyjściowe, które zawierają dane wyjściowe konsoli i
unittestdane wyjściowe z przebiegu testu:
Sprawdzanie testów za pomocą debugera
Testy jednostkowe to fragmenty kodu, które podlegają usterce, takim jak każdy inny kod, i czasami muszą być uruchamiane w debugerze. W debugerze programu Visual Studio można ustawić punkty przerwania, zbadać zmienne i przejść przez kod. Program Visual Studio udostępnia również narzędzia diagnostyczne do testów jednostkowych.
Przejrzyj następujące kwestie dotyczące sprawdzania testów za pomocą debugera programu Visual Studio:
Domyślnie debugowanie testowe wykorzystuje debuggera debugpy dla programu Visual Studio 2019 w wersji 16.5 lub nowszej. Niektóre wcześniejsze wersje programu Visual Studio używają debugera ptvsd 4 . Jeśli używasz starszej wersji programu Visual Studio i preferujesz debuger ptvsd 3, wybierz opcję Użyj starszego debugera w obszarze Narzędzia>Opcje>debugowania>.
Aby rozpocząć debugowanie, ustaw początkowy punkt przerwania w kodzie, a następnie kliknij prawym przyciskiem myszy test (lub wybór) w Eksploratorze testów i wybierz polecenie Debuguj wybrane testy. Program Visual Studio uruchamia debuger języka Python, tak jak w przypadku kodu aplikacji.
Jeśli wolisz, możesz użyć opcji Analizuj pokrycie kodu dla wybranych testów. Aby uzyskać więcej informacji, zobacz Używanie pokrycia kodu w celu określenia, ile kodu jest testowane.