2016-10-19 48 views
6

似乎有一個包來實現這一功能,但我沒有運氣與它在Python 3.5.2或2.7.12:可能對jupyter單元格函數運行python doctest?

from ipython_doctester import test 

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

TypeError: data must be a dict, got: 'ipython_doctester' 

是否有可能使用運行從jupyter細胞的doctest這個包還是其他一些方式?

我也看過%doctest_mode,我發現它將Doctest模式關閉,但一直無法從單元格運行實際的doctest。

回答

6

請嘗試對Jupyter筆記本:

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

import doctest 
doctest.testmod() 

結果應該是:

********************************************************************** 
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) 

(我用的蟒蛇2.7.12)

+0

但也適用於python 3.5 :) – josh

0

我一直在打這個頁面,但希望運行一個單一功能的測試。在這種情況下,https://stackoverflow.com/a/10081450/741316的答案有幫助。即:

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

import doctest 
doctest.run_docstring_examples(my_fun, globals()) 
相關問題