Modul 1 · Python for SDETs

pytest
Əsasları

Testlər necə tapılır, niyə sadə assert kifayətdir və istədiyini dəqiq işlətmək

aşkarlama assert -k / -x raises / approx
AI with Rufat
pytest nəyi toplayır
# tests/test_demo.py
def test_this_runs():
def helper_not_a_test():
class TestProducts:
def test_inside(self):
📄

Fayllar

test_*.py və ya *_test.py

🔧

Funksiyalar

test_ ilə başlayır

📦

Siniflər

Test ilə başlayır (__init__ yox)

💡Şablondan kənar adlar səssizcə buraxılır — #1 "niyə heç bir test işləmədi?"
AI with Rufat
Sadə assert — və oxunaqlı uğursuzluq
tests/test_failure_demo.py
# line 1
def test_intentional_failure():
expected = 5
actual = 2 + 2
assert actual == expected
pytest çıxışı
python-sdet
> assert actual == expected
E assert 4 == 5
test_failure_demo.py:5: AssertionError
pytest assert-i hər iki tərəfi göstərmək üçün yenidən yazır — xüsusi metod yoxdur.
AI with Rufat
Gündəlik bayraqlar

İstədiyin testləri dəqiq işlət

pytest -vtest başına bir sətir
pytest -qsakit, yığcam çıxış
pytest -xilk uğursuzluqda dayan
pytest -k "expr"ada görə süz (and/or/not)
pytest file.py::test_xbir konkret testi işlət
🔁Gündəlik debaq dövrü: pytest -x -k "the_thing_im_fixing"
AI with Rufat
Müraciət edəcəyin iki köməkçi
pytest.raises — xəta gözlə
with pytest.raises(ValueError):
int("not a number")
Yalnız blok həmin xətanı atarsa keçir — yararsız girişin rədd edildiyini belə yoxlayırsan.
pytest.approx — float-ları müqayisə et
assert 0.1 + 0.2 == pytest.approx(0.3)
# plain == 0.3 would FAIL
Floating-point riyaziyyatı dəqiq deyil — hesablanmış qiymətləri və ya cəmləri heç vaxt çılpaq == ilə müqayisə etmə.
AI with Rufat

pytest,
sənin əlində

Testləri tap, uğursuzluqları oxu, istədiyini dəqiq işlət

➡️
Modul 2
Fixtures & parametrize — quraşdırmanı bölüş, bir testi çoxlu giriş üzərində işlət
🧪
Məşq
TestMarket Lab-a qarşı əsl məhsul-API yoxlamaları yaz
🔁
Debaq dövrü
pytest -x -k "name" — tez dayan, dar fokusla
AI with Rufat
← / → · space