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

Lor*_*ein 50 python doctest

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

cnu*_*cnu 75

是.你能行的.该文档测试模块文档和维基百科有一个例子吧.

   >>> x
   Traceback (most recent call last):
     ...
   NameError: name 'x' is not defined
Run Code Online (Sandbox Code Playgroud)

  • 不需要`...` (3认同)

run*_*sun 7

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

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

  • 您可以使用省略号“...”来忽略异常详细信息,如其他答案和文档中所示:https://docs.python.org/3/library/doctest.html#what-about-exceptions 我看到省略号作为更具可读性的变体。 (5认同)

gli*_*ind 5

>>> import math
>>> math.log(-2)
Traceback (most recent call last):
 ...
ValueError: math domain error
Run Code Online (Sandbox Code Playgroud)

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