Sobes.tech
Junior

Milyen teszt modulokat ismersz Pythonban?

sobes.tech MI

Válasz az MI-től

  • unittest (vagy PyUnit) - szabványos modul tesztek létrehozására és futtatására. Támogatja a tesztesetek (TestCase), tesztcsomagok (TestSuite) és tesztfuttatók (TestRunner) fogalmait.
  • pytest - népszerű külső keretrendszer teszteléshez. Egyszerűvé teszi a tesztek írását (TestCase öröklése nélkül), támogatja a fixture-eket, paraméterezést és egy rugalmas plugin rendszert.
  • nose2 - egy másik külső keretrendszer, amely javítja és bővíti a unittest képességeit.
  • doctest - lehetővé teszi, hogy a docstring-ekbe ágyazott kódrészleteket tesztként futtassa.
  • mock (beépítve a unittest.mock-ba Python 3.3+ alatt) - a rendszer részeinek "ál" (mock) objektumokra való cseréjére szolgál, lehetővé téve a kód független tesztelését a függőségektől.
  • coverage.py - méri a kód tesztekkel való lefedettségét.
  • hypothesis - property-alapú teszteléshez keretrendszer, amely különböző bemeneti adatokat generál a kód invariánsainak ellenőrzéséhez.

Az unittest és pytest összehasonlítása:

Jellemző unittest pytest
Teszt leírása TestCase-t öröklő osztályok Funkciók vagy osztálymódszerek
Fixture-ek setUp, tearDown metódusok Dekorátor @pytest.fixture
Paraméterezés Extra trükköket igényel Beépített (@pytest.mark.parametrize)
Jelentések Alapvető Részletesebbek
Pluginok Korlátozott Széles plugin ökoszisztéma

Egyszerű pytest teszt példája:

# my_module.py
def add(a, b):
    return a + b

# test_my_module.py
def test_add():
    """Az add függvény tesztelése"""
    assert add(2, 3) == 5
    assert add(-1, 1) == 0
    assert add(0, 0) == 0

Teszt futtatása:

pytest