Organisering og Kjøring av Tester med pytest
Sveip for å vise menyen
Når du ønsker å skrive ren, uttrykksfull og lett vedlikeholdbar testkode i Python, er pytest et populært valg. I motsetning til det innebygde unittest-rammeverket, som følger en rigid, klassebasert struktur og krever spesifikke påstandsmetoder som self.assertEqual, lar pytest deg bruke vanlige Python assert-setninger i enkle funksjoner. Dette reduserer mengden standardkode betydelig og gjør testene dine mer konsise, siden du ikke lenger trenger å pakke logikk inn i komplekse klassehierarkier eller huske mange rammeverksspesifikke påstandsnavn bare for å verifisere et enkelt resultat.
En av de mest kraftfulle funksjonene i pytest er systemet for testoppdagelse. Ved å bare kjøre pytest i prosjektmappen din, vil det automatisk finne alle filer som matcher mønsteret test_*.py eller *_test.py og utføre alle funksjoner i disse filene som starter med test_. Dette betyr at du ikke trenger å spesifisere manuelt hvilke tester som skal kjøres – pytest håndterer dette for deg.
En annen viktig fordel er bruken av fixtures. Fixtures håndterer arbeidet med å forberede og rydde opp ressurser testene dine trenger, som midlertidige filer eller databasetilkoblinger, på en måte som er enkel å gjenbruke. Du dekorerer bare en funksjon med @pytest.fixture og ber deretter om den som et argument i testfunksjonene dine. Dette holder koden din modulær og hindrer deg i å gjenta samme oppsettlogikk.
For å komme i gang med pytest må du først installere det. Bruk følgende kommando i terminalen:
pip install pytest
Dette vil laste ned og installere den nyeste versjonen av pytest slik at du kan begynne å skrive og kjøre testene dine med en gang.
Her er en praktisk demonstrasjon av hvordan du bruker det til å skrive funksjonsbaserte tester og definere gjenbrukbare fixtures.
import pytest
# A simple function to test
def add(a, b):
return a + b
# Define a fixture that provides test data
@pytest.fixture
def sample_numbers():
return (3, 5)
# Test function using the fixture
def test_add_with_fixture(sample_numbers):
a, b = sample_numbers
result = add(a, b)
assert result == 8
# Another simple test function
def test_add_negative_numbers():
assert add(-2, -4) == -6
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår