Что означает параметр indirect в pytest.mark.parametrize?
indirect передаёт параметр в одноимённую фикстуру через request.param. Тест получает результат фикстуры, а не исходное значение из parametrize.
Читать ответПодготовка к интервью
67 вопросов по pytest с технических собеседований
Что проверяют на интервью
На странице собраны вопросы по pytest — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: pytest, testing, python.
Каталог
indirect передаёт параметр в одноимённую фикстуру через request.param. Тест получает результат фикстуры, а не исходное значение из parametrize.
Читать ответТест сначала создаёт клиента и проверяет 201 и client_id, затем повторяет запрос с тем же ИНН и ожидает 409. Данные должны быть заранее валидными и уникальными для тестового запуска.
Читать ответДекоратор @pytest.mark.parametrize получает имена параметров и наборы их значений. Pytest создаёт отдельный тестовый случай для каждого набора, передавая значения в аргументы функции.
Читать ответЕсли писали хуки pytest, назовите конкретную точку расширения и задачу, которую она решала. Использование готового плагина и собственная реализация хука — разный опыт.
Читать ответОпишите фактические расширения: fixtures, плагины pytest, общую Session или обёртку API-клиента над Requests. Настройка проекта обычно не означает изменение исходного кода самих библиотек.
Читать ответПометьте тесты зарегистрированными маркерами ui и api и запускайте pytest -m ui либо pytest -m api. Альтернатива — разделение по каталогам и запуск нужного пути.
Читать ответПо умолчанию pytest ищет файлы test_*.py и *_test.py, функции и методы с префиксом test и классы с префиксом Test без собственного __init__. Эти правила можно менять настройками и плагинами.
Читать ответФикстуры можно определять в тестовых модулях, conftest.py и плагинах. В проекте может быть много conftest.py в разных каталогах; расположение определяет доступность фикстур для тестов.
Читать ответХуки pytest позволяют расширять этапы запуска: конфигурацию, сбор тестов, выполнение и отчётность. Расскажите о действительно использованном хуке и объясните, почему fixture было недостаточно.
Читать ответВ yield-фикстуре pytest код до yield подготавливает ресурс и передаёт его тесту, а код после — освобождает ресурс после использования. Scope определяет срок жизни экземпляра фикстуры.
Читать ответВ pytest можно зарегистрировать очистку через request.addfinalizer(), а из фикстуры вернуть ресурс обычным return. Finalizer добавляют после успешного действия, которое нужно отменить.
Читать ответРазделите сценарии, объекты страниц, фикстуры окружения и тестовые данные. Pytest организует запуск и зависимости, Selenium выполняет действия в браузере; отчёты помогают разбирать падения.
Читать ответ