CodeBlanks Logo Icon CodeBlanks

pytest temelleri

pytest ile test yazmayı öğrenirsin.

pytest temelleri

pytest, Python'un en yaygın test çerçevesidir. test_ ile başlayan fonksiyonları otomatik bulur ve çalıştırır. Doğrulama için assert deyimini kullanır.

Bir test fonksiyonu def test_add(): biçiminde yazılır; içinde assert add(2, 3) == 5 gibi bir denetim olur. Komut satırından pytest dosya.py ile çalıştırırsın.

def add(a, b):
    return a + b

def test_add():
    assert add(2, 3) == 5
    assert add(-1, 1) == 0

Başarılı testler yeşil nokta; başarısız olanlar F harfiyle gösterilir.pytest çıktısı kısa ve okunaklıdır.

Çalıştırma ve çıktı

pytest, test dosyalarını komut satırından çalıştırır. pytest test_modul.py tek dosyayı; pytest tek başına tüm test_*.py dosyalarını tarar.

Çıktıda her test bir satırda özetlenir: geçenler nokta, başarısızlar F, atlananlar s harfiyle. Toplam süre ve sonuç sayısı en sonda verilir.

Verbose mod için pytest -v kullanırsın; her test adı ayrı yazılır. Hata ayrıntısı için pytest -v --tb=short yararlıdır.

Uygulama add fonksiyonu ve test_add yaz

add(a, b) fonksiyonunu return a + b gövdesiyle yaz. Sonra test_add() adında bir test fonksiyonu tanımla; içinde assert add(2, 3) == 5 denetimi olsun. Dosyanın sonunda test_add() çağrısı yapsın ve print("ok") yazsın.

Başlangıç kodu

main.py
# add fonksiyonu: iki değeri topla ve döndür
# test_add fonksiyonu: add(2, 3) == 5 denetimi yapsın
# test_add() çağrısı yaptıktan sonra "ok" yazdır

Örnek çözüm

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

def test_add():
    assert add(2, 3) == 5

test_add()
print("ok")

Beklenen çıktı

ok

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Test fonksiyonu adını tamamla

Soru
def ____(self=None):
    assert add(2, 3) == 5
Cevap
def test_add(self=None):
    assert add(2, 3) == 5

Açıklama: test_ öneki pytest'in otomatik bulması için gereklidir.

2 pytest çıktı sembollerini eşleştir

Kavram Anlamı
. Geçen test
F Başarısız test
s Atlanan test
-v Ayrıntılı mod

3 pytest hangi fonksiyonları OTOMATİK bulur?

  • test_ ile başlayanları Doğru cevap
  • main ile başlayanları
  • Tüm fonksiyonları
  • Yalnızca sınıf metotlarını

Açıklama: test_ öneki pytest'in otomatik keşfi için standarttır.

İleri seviye bölümündeki tüm dersler