为什么doctest在与Sphinx的“make doctest”一起运行时会引发NameError?

2024-10-04 11:24:52 发布

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

{1{1}给出了一个简单的^错误,当^ 1

File "scheemey.rst", line ?, in default
Failed example:
    verify_balanced('asdf (foo [bar] [[baz], {}, ()]')
Exception raised:
    Traceback (most recent call last):
      File "/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/doctest.py", line 1315, in __run
        compileflags, 1) in test.globs
      File "<doctest default[0]>", line 1, in <module>
        verify_balanced('asdf (foo [bar] [[baz], {}, ()]')
    NameError: name 'verify_balanced' is not defined

是什么引起的?在


Tags: indefaultfoo错误linebarrstbaz
1条回答
网友
1楼 · 发布于 2024-10-04 11:24:52

如果测试函数的模块没有正确导入,我可以重现问题中的错误。在

要使其正常工作,可以使用^{}指令:

.. testsetup:: 

   from yourmodule import verify_balanced

>>> verify_balanced('asdf (foo) [bar] [[baz], {}, ()]')
>>> verify_balanced('asdf (foo [bar] [[baz], {}, ()]')
5

注意,doctest忽略None返回值(请参见Python doctests: test for None)。在

相关问题 更多 >