Мы тут намедни, то есть давеча, обсуждали с командой что нам делать с медленными python-тестами, которые приходится локально прогонять перед каждым PR. Можно оставить это на совести CI, конечно, но время ожидания никуда не денется, билд может упасть, а это читать логи, снова что-то коммитить, снова ждать зелёного светофора…
Ещё тесты можно пометить, запускать выборочно, параллельно и так далее, но где гарантия, что изменения не сломали что-то в других местах? Вот и сидишь, ждёшь, пока пройдут все. А это минуты, часы, месяцы жизни.
Мы пользуемся
pytest
со стандартным набором батареек:
pytest-xdist
,
pytest-flask
,
pytest-cov
,
pytest-benchmark
,
pytest-asyncio
и прочее. Вот я и подумал, наверняка кто-то уже решил эту задачу, чтобы прогонять только те тесты, которые относятся к изменённому коду. Да, так и есть.
pytest-testmon is a pytest plugin which selects and executes only tests you need to run. Just works. Теперь
make tests
гоняет только необходимое.
А вы что посоветуете? Как пишет и гоняет тесты ваша команда?