如何在python2.x和3.x中用doctest测试异常?

2024-10-01 00:21:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我在模块spam中定义了一个异常类SpamException。现在我想测试一个函数spam_function,它引发了这个异常。所以我写了下面的博士论文。在

>>> spam_function()
Traceback (most recent call last):
    ....
SpamException

在python2.x上测试成功,但在python3.x上测试失败。下面的测试在python3.x上运行

^{pr2}$

这里的显著区别是在异常名中包含了模块名。那么,我如何编写一个同时适用于python2.x和3.x的doctest呢?在


Tags: 模块函数most定义functionspamcallpython3
1条回答
网友
1楼 · 发布于 2024-10-01 00:21:35

我将打开^{}指令,如下所示:

>>> spam_function() # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last)
    ...
SpamException: 'lovely spam'

但是请注意,IGNORE_EXCEPTION_DETAIL不适用于普通异常对象(没有关联的参数)。特别是,下面的示例不可移植到Python 3,因为异常名称后面没有任何内容:

^{pr2}$

相关问题 更多 >