我正在写下面的代码,在比较两个Unicode文本的多行块时,我试图产生一个像样的错误消息。这确实比较内部的方法,提出了一个说法,但默认的解释是没用的,我如何在Python AssertionError中更改消息?
我需要添加一些代码,比如下面这样:
def assert_long_strings_equal(one, other):
lines_one = one.splitlines()
lines_other = other.splitlines()
for line1, line2 in zip(lines_one, lines_other):
try:
my_assert_equal(line1, line2)
except AssertionError, error:
# Add some information to the printed result of error??!
raise
我无法弄清楚如何改变打印错误信息在我捕捉到的断言错误中。我总是得到AssertionError: u'something' != 'something else'
,它只显示输出的第一行。
如何更改断言消息以打印出我想要的任何内容?
如果相关,我使用nose
来运行测试。
只是为了澄清,我意识到捕捉一个断言错误是奇怪的。恰巧,'my_assert_equal'很深,我不想惹它。 – 2010-09-27 21:24:26
只要指出,你应该'除''不'赶上'。虽然我确信这只是一个错字:p – katrielalex 2010-09-27 21:30:46