Как PyTest определяет, что файл, класс или функция являются тестом, а не обычным кодом?

По умолчанию pytest ищет файлы test_*.py и *_test.py, функции и методы с префиксом test и классы с префиксом Test без собственного __init__. Эти правила можно менять настройками и плагинами.

Короткий ответ

Что ответить на собеседовании

По умолчанию pytest ищет файлы test_*.py и *_test.py, функции и методы с префиксом test и классы с префиксом Test без собственного init. Эти правила можно менять настройками и плагинами.

Подробный разбор

Ответ с пояснениями

По умолчанию pytest ищет файлы test_*.py и *_test.py, функции и методы с префиксом test и классы с префиксом Test без собственного init. Эти правила можно менять настройками и плагинами.

Сбор начинается из переданных путей либо настроенной области проекта. Также поддерживается обнаружение unittest.TestCase. Обычная функция, не соответствующая правилам сбора, сама тестом не становится. Чтобы увидеть фактически найденные проверки без их выполнения, полезен pytest --collect-only. Импорт модуля при сборе всё равно может выполнять его верхнеуровневый код, поэтому побочные действия там нежелательны.

Источник: docs.pytest.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее