可以在jupyter单元函数上运行python doctest吗?

Ric*_*h L 8 doctest ipython jupyter jupyter-notebook

似乎有一个包来启用此功能,但我在python 3.5.2或2.7.12中没有运气:

from ipython_doctester import test

@test
def my_fun():
    '''
    >>> 2 + 3
    6
    '''
    pass

TypeError: data must be a dict, got: 'ipython_doctester'
Run Code Online (Sandbox Code Playgroud)

是否可以使用此软件包或其他方式从jupyter单元格运行doctest?

我也看了%doctest_mode,我发现它关闭了Doctest模式,但是无法从单元格运行实际的doctest.

swa*_*hai 10

在Jupyter笔记本上试试这个:

def my_fun():
    '''
    >>> 2 + 3
    6
    '''
    pass

import doctest
doctest.testmod()
Run Code Online (Sandbox Code Playgroud)

结果应该是:

**********************************************************************
File "__main__", line 3, in __main__.my_fun
Failed example:
    2 + 3
Expected:
    6
Got:
    5
**********************************************************************
1 items had failures:
   1 of   1 in __main__.my_fun
***Test Failed*** 1 failures.
TestResults(failed=1, attempted=3)
Run Code Online (Sandbox Code Playgroud)

(我使用的是python 2.7.12)


pel*_*son 9

我一直点击这个页面,但想为单个功能运行测试。在这种情况下,https: //stackoverflow.com/a/10081450/741316 上的答案会有所帮助。即:

def my_fun():
    '''
    >>> 2 + 3
    6
    '''
    pass

import doctest
doctest.run_docstring_examples(my_fun, globals())
Run Code Online (Sandbox Code Playgroud)