我想写一个单元测试,确认函数发出预期的警告。 This answer显示了如何。
但是,我还希望在终端窗口中看不到警告的消息,我正在运行nosetests。 (它使鼻试的输出变得混乱。)
有没有办法进行鼻子测试以查看某个功能是否发出警告,而不显示警告文字?
答案 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)