فصل ششم: تست حرفه‌ای با pytest و بسته‌بندی پروژه

نوشتن اولین تست با pytest

چرا تست خودکار می‌نویسیم؟

تست خودکار به ما اطمینان می‌دهد که تغییرات جدید در کد، رفتار قبلی برنامه را خراب نمی‌کند. pytest یکی از محبوب‌ترین ابزارهای تست در پایتون است که با نحو ساده و پیام‌های خطای خوانا شناخته می‌شود.

ابتدا کتابخانه را نصب می‌کنیم:

pip install pytest

فرض کنید تابعی به این شکل داریم:

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

def divide(a, b):
    if b == 0:
        raise ValueError("تقسیم بر صفر مجاز نیست")
    return a / b

فایل تست معمولاً با پیشوند test_ نام‌گذاری می‌شود و هر تابع تست نیز باید با test_ شروع شود تا pytest آن را شناسایی کند:

# test_calculator.py
import pytest
from calculator import add, divide

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

def test_divide_by_zero():
    with pytest.raises(ValueError):
        divide(10, 0)

برای اجرای تست‌ها کافی است دستور pytest را در ریشه‌ی پروژه اجرا کنید. برخلاف unittest که نیاز به کلاس و متدهای خاص دارد، در pytest کافی است از دستور ساده‌ی assert استفاده کنید و کتابخانه به‌طور خودکار پیام خطای دقیقی در صورت شکست تست تولید می‌کند.

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.