🐛 Частые ошибки

← К оглавлению урока

⚡ Топ-3 ошибки

  • Локаторы в тестах, а не в классе страницы
  • Зависимые тесты ломаются при -n auto
  • Трассировку включили, но не сохранили артефакты в CI

1. Локаторы протекают в тесты

# ❌ Локатор в тесте — дублирование, хрупкость
def test_x(page):
    page.get_by_placeholder("Username").fill("u")

# ✅ Через метод страницы
def test_x(login_page):
    login_page.login("u", "p")

2. Зависимые тесты при параллельном прогоне

Если тест B полагается на данные, созданные тестом A, при -n auto они попадут в разные воркеры и B упадёт. Каждый тест должен сам готовить своё состояние (через UI или APIRequestContext).

3. Общий аккаунт/данные между тестами

Параллельные тесты, меняющие одну и ту же запись на сервере, мешают друг другу. Используйте отдельные данные на тест (уникальные имена, отдельные пользователи).

4. Забытые артефакты в CI

--tracing=retain-on-failure создаёт trace.zip, но если CI не сохраняет папку test-results/ как артефакт — отлаживать нечего. Настройте upload артефактов.

5. scope="session" у контекста

Не делайте page/context сессионными ради «скорости» — потеряете изоляцию и получите флак. Сессионным может быть лишь browser (он и так такой).

⚠️ Поведение флагов зависит от версии — сверяйтесь с документацией.