为什么使用Sphinx的 `make doctest` 运行doctests会引发 NameError 错误?

3

我有一个简单的带有doctest的函数,当使用Sphinx的make doctest进行运行时,会出现以下错误:

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

这是什么原因导致的呢?
1个回答

3
如果被测试的模块未能正确导入,我就可以重现问题。为了让它正常工作,你可以使用一个“testsetup”指令:testsetup
.. 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)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接