По умолчанию pytest ищет файлы test_*.py и *_test.py, функции и методы с префиксом test и классы с префиксом Test без собственного init. Эти правила можно менять настройками и плагинами.
Как PyTest определяет, что файл, класс или функция являются тестом, а не обычным кодом?
По умолчанию pytest ищет файлы test_*.py и *_test.py, функции и методы с префиксом test и классы с префиксом Test без собственного __init__. Эти правила можно менять настройками и плагинами.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
По умолчанию pytest ищет файлы test_*.py и *_test.py, функции и методы с префиксом test и классы с префиксом Test без собственного init. Эти правила можно менять настройками и плагинами.
Сбор начинается из переданных путей либо настроенной области проекта. Также поддерживается обнаружение unittest.TestCase. Обычная функция, не соответствующая правилам сбора, сама тестом не становится. Чтобы увидеть фактически найденные проверки без их выполнения, полезен pytest --collect-only. Импорт модуля при сборе всё равно может выполнять его верхнеуровневый код, поэтому побочные действия там нежелательны.
Источник: docs.pytest.org.