我可以使用鼻子检查功能是否发出警告,但是还要在终端上保留该警告信息?

时间:2014-01-11 00:53:12

标签: python unit-testing nose

我想写一个单元测试,确认函数发出预期的警告。 This answer显示了如何。

但是,我还希望在终端窗口中看不到警告的消息,我正在运行nosetests。 (它使鼻试的输出变得混乱。)

有没有办法进行鼻子测试以查看某个功能是否发出警告,而不显示警告文字?

1 个答案:

答案 0 :(得分:0)

我会考虑使用https://pypi.python.org/pypi/mock模块的patch装饰器伪造warnings.warn函数。然后,您可以验证是否已进行呼叫,而不会实际调用它。

像这样(未经测试):

@mock.patch('yourmodule.warnings')
def your_test(self, mock_warnings):
    your_code()
    mock_warnings.warn.assert_called_with("deprecated", DeprecationWarning)