Вступить в клуб →
средняявопросАвтотесты и CI/CD

Тест проходит в одиночку и падает в общем прогоне: разбор сессионной фикстуры

В наборе есть такой код:

@pytest.fixture(scope="session")
def user():
    return create_user(balance=1000)

def test_purchase(user):
    buy(user, price=1000)
    assert get_balance(user) == 0

def test_refund(user):
    refund(user, amount=200)
    assert get_balance(user) == 1200

Что произойдёт при полном прогоне набора?

  • Оба теста упадут: pytest запрещает изменять данные, созданные фикстурой с областью session
  • Всё пройдёт: pytest пересоздаёт фикстуру, если данные внутри неё изменились в предыдущем тесте
  • Упадёт test_purchase: на момент первого теста фикстура ещё не инициализирована и баланс нулевой
  • test_refund упадёт при полном прогоне и пройдёт при запуске в одиночку: оба теста работают с одним и тем же пользователем

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела