你能检查一下Python中的doctest引发异常吗?

时间:2008-08-15 18:43:17

标签: python doctest

是否可以编写doctest单元测试来检查是否引发了异常? 例如,如果我有一个函数foo(x),如果x<0应该引发异常,我该怎么写doctest呢?

3 个答案:

答案 0 :(得分:74)

是。你能行的。 doctest module documentation和维基百科有example

   >>> x
   Traceback (most recent call last):
     ...
   NameError: name 'x' is not defined

答案 1 :(得分:2)

>>> import math
>>> math.log(-2)
Traceback (most recent call last):
 ...
ValueError: math domain error

省略号标志 #doctest:+ ELLIPSIS 不需要在Traceback doctest中使用...

答案 2 :(得分:2)

>>> scope # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
NameError: name 'scope' is not defined

不知道为什么以前的答案没有IGNORE_EXCEPTION_DETAIL。我需要它才能正常工作。 Py versioin:3.7.3。