انتقل إلى المحتوى

اختبارات Python

شغّل اختبارات Python على Elide باستخدام unittest من المكتبة القياسية أو pytest من بيئة افتراضية؛ لا يكتشف elide test اختبارات Python في الإصدار 1.6.0.

في هذه الصفحة
Open in ChatGPTOpen in Claude

لا يكتشف elide test اختبارات Python في الإصدار 1.6.0؛ ففي مجلد لا يحوي إلا Python يطبع No tests found. ويخرج بالرمز 0. شغّل أداة الاختبار بوصفها وحدة بدلًا من ذلك. رمز الخروج هو رمز أداة الاختبار، لذا يُفشل أي اختبار فاشل الأمرَ كله.

تختبر الأمثلة هذه الوحدة:

# greet/cli.py
import sys


def greeting(name: str) -> str:
    return f"Hello, {name}!"


def main() -> int:
    print(greeting(sys.argv[1] if len(sys.argv) > 1 else "world"))
    return 0

يحتوي كلٌّ من greet/ و tests/ على ملف __init__.py فارغ.

unittest

تأتي unittest مع المكتبة القياسية:

# tests/test_cli.py
import unittest

from greet.cli import greeting


class GreetingTest(unittest.TestCase):
    def test_names_the_caller(self):
        self.assertEqual(greeting("Elide"), "Hello, Elide!")
elide python -m unittest discover -s tests -t .
.
----------------------------------------------------------------------
Ran 1 test in 0.001s

OK

pytest

ثبّت pytest في بيئة افتراضية لـ Python 3.13 (الحزم والبيئات الافتراضية)، ثم شغّله بعد ضبط VIRTUAL_ENV:

uv venv --python 3.13 .venv
uv pip install --python .venv/bin/python pytest
# tests/test_greeting.py
from greet.cli import greeting


def test_default_name():
    assert greeting("world") == "Hello, world!"
VIRTUAL_ENV=.venv elide python -m pytest -q

يجمع pytest الملفين كليهما وينتهي بما يلي:

2 passed in 0.03s

في CI

أضف مكوّن Python بعد تثبيت Elide (elide setup python)، ثم شغّل الأوامر نفسها؛ راجع التكامل المستمر.

هل كانت هذه الصفحة مفيدة؟