开发者

Python unit testing: make nose show failed assertions values

is it possible to show the assertion values that failed? It shows the traceback and what kind of excep开发者_运维问答tion was throw but it would more practical to know which values failed.

Example:

assert result.file == file
AssertionError


You should run nosetests -d this will display the values of the objects that fail the compare in assert.


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

That's why ugly self.assert<Foo> methods were introduced in unittest.TestCase instead of nice and short asserts: self.assert<Foo> methods know how to display failure messages.

By the way, I thought that nose do some black magic so in simple cases

assert a == b

should show meaningful error message.


Another possibility: define your own function that does the trick:

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

You can call it instead of assert:

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

And this returns this nice error:

Python unit testing: make nose show failed assertions values

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜