Python 忽略 Django 测试中的异常警告

Python warnings to exceptions in Django tests with ignore

我正在尝试 运行 Django 单元测试使用:

python -We -W ignore:DeprecationWarning -W ignore:UserWarning manage.py test

但是,这并没有成功地忽略这些警告 类,而是只考虑 -We 标志,将所有警告都提升为异常。这不是我想要的行为。

如何 运行 Django 测试,以便在测试中遇到除 DeprecationWarning 和 UserWarning 之外的所有警告都作为异常引发?

用例:我正在处理的项目发现由于测试中的天真日期时间而引发了很多 RuntimeWarnings。我想修复此问题,但为此,我必须找到有问题的测试。

过滤器的第二个参数是消息,而不是模块,因此您的排除项应该是:

python -We -W ignore::DeprecationWarning -W ignore::UserWarning manage.py test

注意额外的冒号并查看示例:https://docs.python.org/3/library/warnings.html#default-warning-filter

你也可以走另一条路,只在 RuntimeWarning

上出错
python -W error::RuntimeWarning manage.py test

为了解决您所询问的更普遍的问题,但是打印每个警告的回溯可能会更快。看到这个 post: