Первый тест API через TestClient
Уроки курсаПервый тест API через TestClient
Как pytest находит файл и тестовую функцию
Когда вы запускаете python -m pytest -q из папки, pytest обходит её и ищет файлы по двум шаблонам: test_*.py и *_test.py. Файл tests.py или helpers.py по умолчанию игнорируются — pytest их не увидит, даже если внутри есть нужные функции.
Внутри подходящего файла pytest ищет функции, имя которых начинается с test. Подчёркивание после test не обязательно: testplain тоже будет найдена и запущена. Зато check_rooms — нет: она не начинается с test, и pytest пройдёт мимо.
В этом курсе используем соглашение test_имя: файлы называем test_rooms.py, функции — test_read_room, test_missing_room. Это читается ясно и соответствует общепринятой практике.
Запустить тесты из папки примера:
python -m pytest -q
Запустить конкретный файл:
python -m pytest -q test_rooms.py
Флаг -q уменьшает подробность вывода. При сбое pytest всё равно показывает ошибку и сравниваемые значения, а в конце — итог пройденных и упавших тестов.
Обратите внимание на строку no tests ran — это не успех. Это значит, что pytest ничего не нашёл и ничего не проверил. Например, файл rooms_checks.py не соответствует шаблонам поиска, а функция check_room_status не является тестовой. Если других тестов нет, pytest сообщит no tests ran. Имя rooms_test.py, напротив, соответствует шаблону *_test.py и допускается. Правильность кода в этом случае не подтверждена.
