繁体   English   中英

Sphinx doctest与autodoc

[英]Sphinx doctest vs autodoc

我似乎无法使Sphinx autodoc和doctest扩展程序配合使用。

我有一个经过文档测试的Python项目,其中的文档字符串工作正常。 也就是说,在我的模块和子模块上调用doctest.testmod()效果很好。

在项目的Sphinx文档中,我正在使用ext.autodoc扩展名和automodule指令将模块的文档自动导入到每个模块的.rst文档中。

我想开始使用ext.doctest Sphinx扩展来编写一些用户文档和教程,并自动检查它们的正确性。 但是,问题在于,显然doctest扩展名从自动automodule d docs解析文档字符串,尝试运行它们并失败(很多有关无法找到文档字符串中引用的类型的错误,以及类似的其他问题)。

我真的不希望ext.doctest从Python代码运行doctest(它们已经作为测试套件的一部分运行了)。 有没有办法告诉Sphinx 不要尝试运行某些文件中出现的doctest?

我有一个类似的问题。 在模块的文档字符串中添加“ testsetup”指令可以为我解决该问题。 虽然,不幸的是您必须这样做。

"""Foo module types and functions

.. testsetup:: *

   from foo import *
   from foo.bar import *
"""

http://sphinx-doc.org/ext/doctest.html#directive-testsetup

如果您希望告诉Sphinx不要从autodoc / automodule运行doctest,请在conf.py文件中修改doctest_test_doctest_blocks参数

doctest_test_doctest_blocks = None

请注意,这还将禁用rst文件中的所有“纯” doctest块(即未显式标记为.. doctest:指令的doctest )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM