15

是否可以显示失败的断言值?它显示了回溯和抛出了什么样的异常,但知道哪些值失败会更实际。

例子:

assert result.file == file
AssertionError
4

3 回答 3

24

您应该运行 nosetests -d 这将显示在断言中比较失败的对象的值。

于 2012-05-17T01:50:30.060 回答
6

assert result.file == file, "%s != %s" % (result.file, file,)

这就是为什么引入丑陋的self.assert<Foo>方法unittest.TestCase而不是漂亮和简短的断言:self.assert<Foo>方法知道如何显示失败消息。

顺便说一句,我认为鼻子会做一些黑魔法,所以在简单的情况下

assert a == b

应该显示有意义的错误信息。

于 2010-09-01T15:35:58.097 回答
1

另一种可能性:定义自己的功能来解决问题:

def assert_eq(obt, exp):
    assert obt==exp, "\n*Expected:\n%s\n*Obtained:\n%s" % (exp, obt)

您可以调用它而不是assert

assert_eq ( self.data['SQ'].code, "SQ" )

这会返回这个不错的错误:

断言错误

于 2015-09-07T04:27:19.187 回答