pytest temelleri
- Python kursu
- İleri seviye
- Ders 13/83
- 5 dk
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) == 0Baş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
# 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
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
def ____(self=None):
assert add(2, 3) == 5
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.