Короткий ответ
Pytest — это open-source фреймворк для тестирования Python-кода, который ценят за простой синтаксис на assert и автоматическое обнаружение тестов. Он масштабируется от простых unit-тестов до сложных функциональных, устанавливается командой pip install pytest и запускается командой pytest.
Как это работает подробнее
- Установка. Фреймворк устанавливается командой pip install pytest.
- Обнаружение тестов. pytest распознаёт файлы, имя которых начинается с test_ или заканчивается на _test, а внутри них — функции и методы с именами, начинающимися с test.
- Проверки. Утверждения записываются обычными выражениями assert: при ложном условии тест останавливается, а в отчёте появляется AssertionError со сравнёнными значениями.
- Запуск. Тесты выполняются командой pytest или py.test в каталоге проекта, конкретный файл — как pytest test_sample1.py.
- Отбор и метки. Подстрока имени выбирается флагом -k, группы — декоратором @pytest.mark и флагом -m, пропуски — skip, ожидаемые падения — xfail.
Пример кода
Простой тест на pytest
def test_add():
x, y = 5, 6
assert x + 1 == y, 'test failed'Что использовать на практике
- Старт проекта. Начинай с pip install pytest и файлов вида test_*.py.
- Точечный запуск. Запускай конкретные файлы и тесты через pytest test_sample1.py и флаг -k.
- Группировка. Объединяй тесты метками @pytest.mark и запускай выбранные через флаг -m.
- Параллельность. Для ускорения подключи pytest-xdist и запускай тесты с флагом -n.