当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python doctest.IGNORE_EXCEPTION_DETAIL用法及代码示例


用法:

doctest.IGNORE_EXCEPTION_DETAIL

指定时,如果引发预期类型的异常,则预期异常的示例通过,即使异常详细信息不匹配。例如,如果引发的实际异常是 ValueError: 3*14 ,则期望 ValueError: 42 的示例将通过,但会失败,例如,如果引发 TypeError

它还将忽略 Python 3 doctest 报告中使用的模块名称。因此,无论测试是在 Python 2.7 还是 Python 3.2(或更高版本)下运行,这两种变体都可以使用指定的标志:

>>> raise CustomError('message')
Traceback (most recent call last):
CustomError: message

>>> raise CustomError('message')
Traceback (most recent call last):
my_module.CustomError: message

请注意,ELLIPSIS 也可用于忽略异常消息的详细信息,但根据模块详细信息是否作为异常名称的一部分打印,此类测试仍可能失败。使用IGNORE_EXCEPTION_DETAIL 和 Python 2.3 中的详细信息也是编写不关心异常详细信息但在 Python 2.3 或更早版本下继续通过的 doctest 的唯一明确方法(这些版本不支持 doctest 指令并将它们作为无关的评论)。例如:

>>> (1, 2)[3] = 'moo'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object doesn't support item assignment

通过指定标志的 Python 2.3 和更高版本的 Python,即使 Python 2.4 中的细节更改为 “does not” 而不是 “doesn’t”。

在 3.2 版中更改:doctest.IGNORE_EXCEPTION_DETAIL现在也忽略与包含被测异常的模块相关的任何信息。

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 doctest.IGNORE_EXCEPTION_DETAIL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。