Python单元测试:使nose显示失败的断言值

时间:2010-09-01 15:09:17

标签: python nose

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

示例:

assert result.file == file
AssertionError

3 个答案:

答案 0 :(得分:23)

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

答案 1 :(得分:6)

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

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

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

assert a == b

应显示有意义的错误消息。

答案 2 :(得分: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" )

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

AssertionError