Resumé
I dette modul udforskede du pytest-funktioner, der hjælper dig med at skrive mere udtryksfulde og vedligeholdelsesvenlige tests. Du plejede @pytest.mark.parametrize at køre den samme testfunktion med flere inputværdier. Pytest indsamler hvert parametersæt som et separat testtilfælde, så rapporter kan identificere præcis, hvilket input der bestod eller fejlede.
Du arbejdede også med armaturer. Fixtures leverer genanvendelig setup-kode, gør testafhængigheder eksplicitte gennem funktionsargumenter og kan styre oprydning ved hjælp af yield-baseret teardown og passende fixture scopes. Du anvendte disse idéer ved at skrive parametriserede tests og refaktorere en klassebaseret test fra xUnit-stilen setup_method() og teardown_method() tilgangen til en brugerdefineret fixture, der bruger pytests tmp_path fixture til håndtering af midlertidige filer. Du gennemgik også indbyggede fixtures, herunder tmp_path, som giver en pathlib.Path midlertidig mappe for hver testfunktionskald, og monkeypatch, som midlertidigt ændrer attributter, ordbogsværdier, miljøvariabler sys.path, eller den aktuelle arbejdsmappe og gendanner disse ændringer efter den anmodende test eller fixture er færdig.
Du kan nu:
- Brug parametrisering til at dække flere input uden at gentage testfunktioner.
- Læs pytest-output for at diagnosticere, hvilke parameterværdier der består eller fejler.
- Opret brugerdefinerede armaturer til at dele opsætnings- og oprydningslogik.
- Vælg armatur-scopes baseret på, hvor ofte opsætningen skal køre, og hvornår oprydning skal finde sted.
- Placer delte armaturer i,
conftest.pyså tests i samme mappe og dets undermapper kan anmode om dem uden eksplicitte import. - Brug indbyggede fixtures, herunder
tmp_pathtil midlertidige filer ogmonkeypatchtil ændringer i scoped state, til at isolere tests, der afhænger af filer, miljøvariabler, importer eller ekstern tilstand.
For mere information, se pytest-dokumentationen for parametrisering af tests, fixtures, indbyggede fixtures, midlertidige mapper og filer, xUnit-lignende opsætning og monkeypatch.