我似乎无法让Sphinx autodoc和doctest扩展很好地协同工作。
我有一个doctested Python项目,其中docstrings正常工作。也就是说,在我的模块和子模块上调用doctest.testmod()
效果很好。
在项目的Sphinx文档中,我使用ext.autodoc
扩展名和automodule
指令自动将模块的文档导入每个模块的.rst
文档。
我想开始使用ext.doctest
Sphinx扩展来编写一些用户文档和教程,并自动检查它们是否正确。然而,问题是显然doctest扩展从automodule
d文档解析文档字符串,尝试运行它们并失败(很多错误无法找到文档字符串中引用的类型,以及其他问题,如这一点)。
我真的不希望ext.doctest
从Python代码运行doctests(它们已作为测试套件的一部分运行)。有没有办法告诉Sphinx 不尝试运行出现在某些文件中的doctests?
答案 0 :(得分:1)
我遇到了类似的问题。将“testsetup”指令添加到我的模块的docstring为我解决了这个问题。虽然,不幸的是你必须这样做。
"""Foo module types and functions
.. testsetup:: *
from foo import *
from foo.bar import *
"""
答案 1 :(得分:0)
如果您希望告诉Sphinx不要从autodoc / automodule运行doctests,请修改conf.py
文件中的doctest_test_doctest_blocks参数
doctest_test_doctest_blocks = None
请注意,这也会禁用所有'普通'''第一个文件中的doctest块(即未明确标有.. doctest:指令的doctests)。