Выбор ответа Senior pytest и фикстуры обновлено

Порядок создания фикстур

Вопрос

Тест запрашивает def test_x(page, api_client), где page со скоупом function, а api_client со скоупом session, и между ними нет зависимостей. Какая фикстура создаётся первой?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: apiclient: фикстуры широкого скоупа создаются раньше. pytest сначала создаёт фикстуры более широкого скоупа (session, затем package, module, class, function).

Варианты ответа

  1. page, потому что она стоит первой в списке аргументов
  2. Порядок случайный и меняется от запуска к запуску
  3. api_client: фикстуры широкого скоупа создаются раньшеправильный ответ
  4. Обе одновременно, pytest создаёт их в разных потоках

Разбор

pytest сначала создаёт фикстуры более широкого скоупа (session, затем package, module, class, function). Порядок аргументов важен только среди фикстур одного скоупа без зависимостей. Параллельно в потоках фикстуры не создаются.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме