Есть ли что-то вроде «автотеста» для юнит-тестов Python? - PullRequest
43 голосов
/ 20 сентября 2008

В основном, рычание уведомлений (или других обратных вызовов), когда тесты ломаются или проходят. Существует ли что-нибудь подобное?

Если нет, это должно быть довольно легко написать .. Самый простой способ был бы ..

  1. пробег python-autotest myfile1.py myfile2.py etc.py
    • Проверьте, были ли изменены файлы для мониторинга (возможно, только если они были сохранены).
    • Запустите любые тесты в этих файлах.
    • Если тест не пройден, но в предыдущем запуске он пройден, сгенерировать предупреждение о рычании То же самое с тестами, которые не проходят, а затем проходят.
    • Подождите и повторите шаги 2-5.

Я вижу проблему, если тесты находятся в другом файле. Простым решением будет запускать все тесты после каждого сохранения ... но при более медленных тестах это может занять больше времени, чем время между сохранениями, и / или может потребовать много ресурсов процессора и т. Д.

Лучший способ сделать это - увидеть, какие биты кода изменились, если изменилась функция abc (), запускать только тесты, которые взаимодействуют с этим ... Хотя это было бы здорово, я думаю, что это будет чрезвычайно сложно реализовать?

Подведем итог:

  • Есть ли что-то похожее на инструмент Ruby autotest (входит в пакет ZenTest ), но для кода Python?
  • Как проверить, какие функции изменились между двумя ревизиями скрипта?
  • Можно ли определить, какие функции вызовет команда? (Что-то вроде обратного отслеживания)

Ответы [ 11 ]

0 голосов
/ 31 августа 2018

Вы можете использовать nodemon для задачи, просматривая файлы .py и выполняя manage.py test. Команда будет: nodemon --ext py --exec "python manage.py test".

nodemon - это пакет npm, однако, я предполагаю, что у вас установлен узел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...