如何在Django中显示测试名称且屏蔽数据库迁移日志
解决Django测试只显示测试名称、屏蔽迁移日志的方法
下面是几个实用方案,帮你实现只看测试名称,不用被迁移日志刷屏:
方案1:复用测试数据库(最简单)
直接在测试命令里加上--keepdb参数,它会保留之前创建的测试数据库,避免每次都重新执行创建和迁移步骤,再配合-v 2就能只显示测试名称:
python manage.py test -v 2 --keepdb
注意:第一次运行这个命令时,因为测试数据库还不存在,还是会输出迁移日志;从第二次开始,数据库已经存在,就只会显示测试相关内容了。
方案2:调整日志级别(彻底屏蔽迁移日志)
如果不想复用数据库,或者第一次运行也不想看到迁移日志,可以通过调整Django的日志级别,把迁移相关的日志输出关掉。Django的迁移日志由django.db.migrations这个日志器输出,我们把它的级别设为WARNING,就不会显示INFO级的迁移步骤了:
python manage.py test -v 2 --log-level django.db.migrations=WARNING
这个命令不管是第一次还是后续运行,都会直接跳过迁移日志,只显示测试名称和结果。
方案3:用pytest替代原生测试(可选)
如果你的项目已经在用pytest-django插件,直接用pytest -v就能默认显示测试名称,而且可以通过配置轻松屏蔽迁移日志。比如在项目根目录创建pytest.ini文件,添加以下内容:
[pytest] django_log_level = WARNING
之后运行pytest -v就只会显示测试相关的输出了。
内容的提问来源于stack exchange,提问作者Flimm
相关产品推荐
相关产品推荐

