【问题标题】:Filtering warnings in django tests在 django 测试中过滤警告
【发布时间】:2020-02-07 11:55:22
【问题描述】:

我正在尝试将 django 抛出的一些警告作为单元测试中的错误提出。

我已经这样配置了我的测试设置:

from warnings import filterwarnings
from django.core.paginator import UnorderedObjectListWarning

filterwarnings('error', category=UnorderedObjectListWarning)

当我在一个应用程序上运行我的测试时,警告会正确地作为异常引发。 但如果我在全局范围内运行测试,则不会引发异常。

./manage.py test myapp  # warnings are raised as exception
./manage.py test  # no exception

为什么我会有这种差异?在运行我的所有测试时如何设法将警告作为异常引发?

【问题讨论】:

    标签: django unit-testing


    【解决方案1】:

    你可以这样做:

    try:
        function_you_want_to_test()
    except CustomException:
        self.assertTrue(False)  # This code is only executed if the CustomException is thrown.
    

    【讨论】:

    • 这不是我要求的。我想检查我的运行代码是否没有从 django 获得任何细节,而不是测试一些异常。使用 assertRaises 方法可以更好地测试异常。
    猜你喜欢
    • 1970-01-01
    • 2018-01-27
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    相关资源
    最近更新 更多