【问题标题】:Python warnings to exceptions in Django tests with ignorePython 警告 Django 测试中的异常,忽略
【发布时间】:2020-01-18 17:34:35
【问题描述】:

我正在尝试使用以下方法运行 Django 单元测试:

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

但是,这并没有成功地忽略这些警告类,而是只尊重-We 标志,将所有警告引发到异常。这不是我想要的行为。

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

用例:我正在处理的项目看到很多 RuntimeWarnings 由于测试中的天真日期时间而引发。我想解决这个问题,但要解决这个问题,我必须找到有问题的测试。

【问题讨论】:

    标签: django python-3.x unit-testing exception warnings


    【解决方案1】:

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

    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
    

    为了解决您所询问的更普遍的问题,但是使用您的每个警告打印回溯可能会更快。请参阅此 SO 帖子:https://stackoverflow.com/a/22376126/11847125

    【讨论】:

      猜你喜欢
      • 2016-10-03
      • 1970-01-01
      • 2018-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      相关资源
      最近更新 更多