Перейти до вмісту

Тести Python

Запускайте тести Python в Elide через unittest зі стандартної бібліотеки або pytest із віртуального середовища; у версії 1.6.0 elide test не знаходить тести Python.

На цій сторінці
Open in ChatGPTOpen in Claude

У версії 1.6.0 elide test не знаходить тести Python; у каталозі лише з 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) і запустіть ті самі команди; див. Безперервна інтеграція.

Чи була ця сторінка корисною?