Django测试以检查挂起的迁移


Django有一个--check参数,让您检查是否需要为项目创建迁移。这相对容易添加到CI中,但不会在开发人员计算机上执行检查。

我想在我的Django项目中添加这个检查作为单元测试,以便在开发人员运行我们的测试套件时覆盖它。

实现这一点的好方法是什么?

您可以添加以下单元测试:

from io import StringIO
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的结果是否返回一个";没有检测到变化";,这意味着不需要创建迁移。

最新更新