首页 > 解决方案 > 如何让 PyC​​harm 查看由 `__doc__` 分配指定的 doctest

问题描述

考虑以下包含 doctests 的文档。

def f(x):
   """
   Increments by one.
   >>> f(2)
   3
   """
   return x + 1

PyCharm 的测试运行器(如此处所示)选择了 doctest。

但是 PyCharm 没有将以下内容视为 doctest(尽管pytest --doctest-modules -v例如可以看到)。

f = lambda x: x + 1
f.__doc__ = """
Increments by one.
>>> f(2)
3
"""

标签: pythonpycharmdoctest

解决方案


根据评论,看起来 PyCharm 期望所有测试至少缩进一个级别(即使是模块级别的 docstring,根本不需要缩进,它似乎依赖于该级别的缩进)。这不是常规文档测试的要求(python3 -mdoctest -v modulename.py工作得很好),但 PyCharm 一定很难。

您手动分配的文档字符串没有缩进,因此 PyCharm 似乎忽略了它。将其更改为:

f = lambda x: x + 1
f.__doc__ = """
    Increments by one.
    >>> f(2)
    3
    """

使字符串包含一层缩进似乎足以让 PyC​​harm 加入。


推荐阅读