2014-12-01 1 views
0

나는 겉으로보기에는 스핑크스 autodoc과 doctest 확장을 멋지게 연출할 수 없다.스핑크스 doctest 대 autodoc

docstring이 잘 작동하는 doctested Python 프로젝트가 있습니다. 즉, 내 모듈 및 하위 모듈에서 doctest.testmod()을 호출하면 올바르게 작동합니다.

프로젝트의 Sphinx 문서에서 ext.autodoc 확장자와 automodule 지시어를 사용하여 모듈의 문서를 각 모듈의 .rst 문서로 자동으로 가져옵니다.

ext.doctest Sphinx 확장 프로그램을 사용하여 몇 가지 사용자 설명서 및 설명서를 작성하고 자동으로 정확성을 검사하도록하고 싶습니다. 그러나 문제는 분명히 doctest 확장이 automodule docs에서 docstring을 파싱하고 실행하려고 시도하며 실패합니다 (docstring에서 참조 된 유형을 찾을 수 없다는 오류 및 이와 유사한 기타 문제).

ext.doctest은 (이미 테스트 스위트의 일부로 실행 된) 파이썬 코드에서 doctests를 실행하고 싶지 않습니다. 스핑크스 이 아니라고 말하면 특정 파일에 doctest가 나타나게 할 수 있습니까?

답변

1

비슷한 문제가있었습니다. 모듈의 문서화 문자열에 "testsetup"지시어를 추가하면 저의 문제가 해결되었습니다. 하지만, 불행한 점은이 일을해야한다는 것입니다. 당신이 autodoc/automodule에서의 doctest를 실행하지 스핑크스에게하고자하는 경우 이것은 또한 어떤을 사용하지 것이다

"""Foo module types and functions 

.. testsetup:: * 

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

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

+0

어쩌면'doctest_global_setup' 설정 대신 사용할 수 있을까요? –

0

, 당신의 conf.py 파일에

doctest_test_doctest_blocks = None 

주를 doctest_test_doctest_blocks 매개 변수를 수정 첫 번째 파일에서 doctest 블록 (즉, .. doctest: 지시어로 명시 적으로 표시되지 않은 doctest).