我在模块spam
中定义了一个异常类SpamException
。现在我想要测试一个会抛出这个异常的函数spam_function
。因此我编写了以下的doctest。
>>> spam_function()
Traceback (most recent call last):
....
SpamException
这个测试能够在Python 2.x上通过,但却在Python 3.x上失败了。以下的测试则可以在Python 3.x上成功。
>>> spam_function()
Traceback (most recent call last):
....
spam.SpamException
这里的显著区别在于异常名称中包含了模块名。那么我该如何编写一个可以在Python 2.x和3.x上运行的doctest?
# doctest: +IGNORE_EXCEPTION_DETAIL
时没有注意到任何变化,即它在任何Python版本下都会继续失败。你能加一个完整的例子吗? - Helmut Grohne__str__
方法时,IGNORE_EXCEPTION_DETAIL
才能起作用。只有在这种情况下,最终的异常行才有一个必需的冒号,以使指令正常工作。 - Helmut Grohne