Тест Django для проверки наличия ожидающих миграций
В Django есть аргумент --check
, который позволяет вам проверить, нужно ли создавать миграции для вашего проекта. Это относительно легко добавить в CI, но это не будет выполнять проверку на компьютерах разработчиков.
Я хочу добавить эту проверку в качестве модульного теста в мой проект Django, чтобы она была покрыта, когда разработчики запускают наш набор тестов.
Какой хороший способ достичь этого?
Вы можете добавить следующий unittest:
def test_for_missing_migrations():
output = StringIO()
call_command("makemigrations", no_input=True, dry_run=True, stdout=output)
assert output.getvalue().strip() == "No changes detected", (
"There are missing migrations:\n %s" % output.getvalue()
)
Проверяется, возвращает ли результат python manage.py makemigrations значение "Изменений не обнаружено", что означает отсутствие миграций, которые необходимо создать.