Sobes.tech
Назад к вопросам
Junior — Middle
50

Каким образом можно организовать и структурировать тесты при использовании pytest?

Компании, где спрашивали
Леста

Ответ от нейросети

sobes.tech AI

В pytest тесты организуются в виде функций, которые можно группировать по файлам и директориям. Для структурирования тестов обычно используют:

  • Файлы с префиксом test_ или суффиксом _test.py — pytest автоматически находит такие файлы.
  • Функции с именами, начинающимися с test_ — pytest считает их тестами.
  • Классы с именами, начинающимися с Test, внутри которых находятся тестовые методы (имена которых начинаются с test_). Классы не должны иметь конструктор __init__.
  • Использование фикстур (@pytest.fixture) для подготовки и очистки тестовых данных, что помогает избежать дублирования кода.
  • Группировка тестов по директориям с файлом __init__.py или без него.

Пример простой структуры:

tests/
  test_math.py
  test_utils.py

# test_math.py
import pytest

def test_add():
    assert 1 + 1 == 2

class TestMultiply:
    def test_multiply(self):
        assert 2 * 3 == 6

@pytest.fixture
def sample_data():
    return [1, 2, 3]

def test_sum(sample_data):
    assert sum(sample_data) == 6

Такой подход позволяет легко масштабировать тесты и поддерживать их в порядке.