- Установка прехуков
pre-commit install
- Запуск миграций для тестовой базы
set STAGE=pytest&& flask db upgrade
- Запуск тестов
pytest
- Запуск тестов в многопоточном режиме (через плагин pytest-xdist)
pytest -n {num_cpu}
FAQ
Что такое pytest ???
Материалы для изучения:
- Оффициальная документация. Что? Думал тут будет ссылка на обучающий тикток? Ха.
- Перевод книги по pytest (не официальной документации, а всего лишь книги)
Прехуки игнорируют конфигурацию!!!!
У некоторых прехуков существует неочевидная логика считывания конфигурации.
Допустим, у вас в проекте используется .editorconfig
, хранящий настройки
для вашего редактора и больше он вроде бы нигде не используется. На самом деле
это не так :)
Рассмотрим на примере isort
.
isort
ищет ближайший файл конфигурацию к файлам на которые он применяется,
где ближайший - значит что он поднимается по директориям выше и ищет любой
конфигурационный файл из своего списка. В него же и входит .editorconfig
,
найдя в любой папке выше этот файл isort
не пойдет искать выше файл
setup.cfg
в котором мы ему прописали настройки, а остановится и возьмет
только то, что написанно в .editorconfig.
Например только длину строки.
И все, все поломалось.
Подробнее о чем я тут написал https://pycqa.github.io/isort/docs/configuration/config_files.html
pytest не видит ничего кроме тестов
Возможно в вашей реализации может возникнуть проблема, что такой командой pytest не находит файлы проекта, в то время как pycharm запускает без проблем.
Ну чтож, это происходит по той причине, что pytest не изменяет PYTHONPATH, в который устанавливается как мы помним наша рабочая директория.
Решений тут несколько:
- Добавить в вашу папку с тестами файл
__init__.py
, как это сделано у меня - Добавить пустой файл
conftest.py
в родительскую директорию. - Запускать тесты командой
python -m pytest