При работе с библиотекой для тестирования pytest в Python, очень важно понимать, для чего предназначен файл conftest.py и как его правильно использовать.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Что такое conftest.py?
conftest.py — это местное место хранения для фикстур, которые будут использоваться несколькими файлами тестов. Это может быть полезно, когда у вас есть несколько тестов, которые зависят от одних и тех же предварительных условий.
Возьмем простой пример. Предположим, есть приложение, которое обрабатывает данные пользователя. Некоторые тесты могут требовать уже зарегистрированного пользователя. Вместо того чтобы каждый раз регистрировать пользователя в каждом тесте, можно создать фикстуру в файле conftest.py, которая регистрирует пользователя и возвращает его данные.
import pytest @pytest.fixture def registered_user(): user = User() user.register('Test User', 'testuser@gmail.com', 'password') return user
Теперь эта фикстура доступна для использования в любом тесте в этом проекте.
Можно ли использовать несколько файлов conftest.py?
Да, в больших проектах может быть несколько файлов conftest.py. Они обычно располагаются в разных директориях, и каждый из них содержит фикстуры, специфичные для тестов в этой директории.
Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.
Как правильно использовать conftest.py?
Важно помнить, что conftest.py предназначен для общих фикстур, которые используются в нескольких тестах. Если фикстура используется только в одном тесте, лучше определить ее прямо в этом тесте.
Файлы conftest.py также могут содержать хуки для pytest, которые могут изменять поведение pytest на более глубоком уровне.
В заключение, файлы conftest.py — это мощный инструмент в pytest, который помогает организовать и повторно использовать код тестов. Однако, как и любой инструмент, его следует использовать с умом и только тогда, когда это действительно необходимо.
Добавить комментарий