Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Pytest-Rammeværk: Opsætning og Kørsel af Automatiserede Tests | Beherskelse af Pytest-Rammeværket
Python Strukturel Programmering

bookPytest-Rammeværk: Opsætning og Kørsel af Automatiserede Tests

Installation

Først og fremmest skal vi installere Pytest. Denne proces er ligetil takket være Pythons pakkehåndtering, pip. Åbn din kommandolinje eller terminal, og indtast følgende kommando:

pip install pytest

Det er altid bedst at gøre dette i projektets virtuelle miljø.

Syntaksforklaring

En af grundene til, at Pytest er så populær i Python-fællesskabet, er dets enkle og letlæselige syntaks. I modsætning til nogle andre testframeworks tillader Pytest, at du kan skrive testkode på en meget menneskelig og læsbar måde. Her er et kort overblik:

  • Testfiler: pytest genkender filer, der begynder med test_ eller slutter med _test.py;
  • Testfunktioner: funktioner, der starter med test_ i disse filer, identificeres automatisk som testfunktioner af pytest;
  • Assertioner: brug Pythons indbyggede assert-udsagn til at verificere, at bestemte betingelser er opfyldt.

Kodeeksempler

Lad os anvende det, vi har lært, med et simpelt eksempel. Antag, at vi har en funktion kaldet add, der lægger to tal sammen. Sådan kan vi skrive en test for den med Pytest:

# content of test_example.py
def add(a, b):
    return a + b

def test_add():
    assert add(2, 3) == 5
    assert add('space', 'ship') == 'spaceship'

Dette kodeeksempel viser to tests: én for tal og én for strenge. Assert-udsagnene kontrollerer, om funktionen opfører sig som forventet.

Sådan køres tests og fortolkes resultater

At køre tests med Pytest er meget enkelt. Naviger til den mappe, der indeholder din testfil, og kør følgende kommando:

pytest

Pytest vil automatisk finde og køre alle tests i mappen og vise en rapport, der viser, om hver test bestod eller fejlede. Her er et eksempel på, hvad du kan se:

===================== test session starts ======================
collected 2 items

test_example.py ..                                         [100%]

====================== 2 passed in 0.12s =======================

Hver prik repræsenterer en bestået test. Pytest giver detaljeret output for fejlede tests, inklusive linjenummer og årsag til fejlen, hvilket gør det nemt at diagnosticere og rette problemer.

===================== test session starts ======================
collected 2 items

test_example.py .F                                         [100%]

====================== FAILURES ==========================
____________________ test_add _________________________

    def test_add():
>       assert add(2, 3) == 8
E       AssertionError: assert 5 == 8
E        +  where 5 = add(2, 3)

test_example.py:6: AssertionError
===================== 1 passed, 1 failed in 0.23s ======================

Fortolkning af resultaterne

  • Bestået (.): testen blev gennemført med succes, og alle assertioner var True;
  • Fejlet (F): testen indeholder assertioner, der ikke var True, hvilket indikerer et problem;
  • Sprunget over (s): testen blev sprunget over, muligvis på grund af en konfigureret betingelse eller afhængighed.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 2

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

bookPytest-Rammeværk: Opsætning og Kørsel af Automatiserede Tests

Stryg for at vise menuen

Installation

Først og fremmest skal vi installere Pytest. Denne proces er ligetil takket være Pythons pakkehåndtering, pip. Åbn din kommandolinje eller terminal, og indtast følgende kommando:

pip install pytest

Det er altid bedst at gøre dette i projektets virtuelle miljø.

Syntaksforklaring

En af grundene til, at Pytest er så populær i Python-fællesskabet, er dets enkle og letlæselige syntaks. I modsætning til nogle andre testframeworks tillader Pytest, at du kan skrive testkode på en meget menneskelig og læsbar måde. Her er et kort overblik:

  • Testfiler: pytest genkender filer, der begynder med test_ eller slutter med _test.py;
  • Testfunktioner: funktioner, der starter med test_ i disse filer, identificeres automatisk som testfunktioner af pytest;
  • Assertioner: brug Pythons indbyggede assert-udsagn til at verificere, at bestemte betingelser er opfyldt.

Kodeeksempler

Lad os anvende det, vi har lært, med et simpelt eksempel. Antag, at vi har en funktion kaldet add, der lægger to tal sammen. Sådan kan vi skrive en test for den med Pytest:

# content of test_example.py
def add(a, b):
    return a + b

def test_add():
    assert add(2, 3) == 5
    assert add('space', 'ship') == 'spaceship'

Dette kodeeksempel viser to tests: én for tal og én for strenge. Assert-udsagnene kontrollerer, om funktionen opfører sig som forventet.

Sådan køres tests og fortolkes resultater

At køre tests med Pytest er meget enkelt. Naviger til den mappe, der indeholder din testfil, og kør følgende kommando:

pytest

Pytest vil automatisk finde og køre alle tests i mappen og vise en rapport, der viser, om hver test bestod eller fejlede. Her er et eksempel på, hvad du kan se:

===================== test session starts ======================
collected 2 items

test_example.py ..                                         [100%]

====================== 2 passed in 0.12s =======================

Hver prik repræsenterer en bestået test. Pytest giver detaljeret output for fejlede tests, inklusive linjenummer og årsag til fejlen, hvilket gør det nemt at diagnosticere og rette problemer.

===================== test session starts ======================
collected 2 items

test_example.py .F                                         [100%]

====================== FAILURES ==========================
____________________ test_add _________________________

    def test_add():
>       assert add(2, 3) == 8
E       AssertionError: assert 5 == 8
E        +  where 5 = add(2, 3)

test_example.py:6: AssertionError
===================== 1 passed, 1 failed in 0.23s ======================

Fortolkning af resultaterne

  • Bestået (.): testen blev gennemført med succes, og alle assertioner var True;
  • Fejlet (F): testen indeholder assertioner, der ikke var True, hvilket indikerer et problem;
  • Sprunget over (s): testen blev sprunget over, muligvis på grund af en konfigureret betingelse eller afhængighed.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 2
some-alt