1. Установка прехуков
pre-commit install
  1. Запуск миграций для тестовой базы
set STAGE=pytest&& flask db upgrade
  1. Запуск тестов
pytest
  1. Запуск тестов в многопоточном режиме (через плагин pytest-xdist)
pytest -n {num_cpu}

FAQ

Что такое pytest ???

Материалы для изучения:

  1. Оффициальная документация. Что? Думал тут будет ссылка на обучающий тикток? Ха.
  2. Перевод книги по pytest (не официальной документации, а всего лишь книги)

Прехуки игнорируют конфигурацию!!!!

У некоторых прехуков существует неочевидная логика считывания конфигурации.

Допустим, у вас в проекте используется .editorconfig, хранящий настройки для вашего редактора и больше он вроде бы нигде не используется. На самом деле это не так :)

Рассмотрим на примере isort.

isort ищет ближайший файл конфигурацию к файлам на которые он применяется, где ближайший - значит что он поднимается по директориям выше и ищет любой конфигурационный файл из своего списка. В него же и входит .editorconfig, найдя в любой папке выше этот файл isort не пойдет искать выше файл setup.cfg в котором мы ему прописали настройки, а остановится и возьмет только то, что написанно в .editorconfig.

Например только длину строки.

И все, все поломалось.

Подробнее о чем я тут написал https://pycqa.github.io/isort/docs/configuration/config_files.html

pytest не видит ничего кроме тестов

Возможно в вашей реализации может возникнуть проблема, что такой командой pytest не находит файлы проекта, в то время как pycharm запускает без проблем.

Ну чтож, это происходит по той причине, что pytest не изменяет PYTHONPATH, в который устанавливается как мы помним наша рабочая директория.

Решений тут несколько:

  1. Добавить в вашу папку с тестами файл __init__.py, как это сделано у меня
  2. Добавить пустой файл conftest.py в родительскую директорию.
  3. Запускать тесты командой python -m pytest

Ссылка в гугле