[英]Python using doctest on the mainline
你好,我想知道是否有可能,如果有可能怎么辦? 進行doctest或類似於主線的操作,而不是按照doctest docs中所述測試功能,即
"""
>>>
Hello World
"""
if __name__ == "__main__":
print "Hello"
import doctest
doctest.testmod()
這是能夠針對文檔字符串測試學生腳本的一部分,我發現此代碼段可讓我同時輸入兩者
import doctest
from doctest import DocTestRunner, DocTestParser
enter code here
def run_doctest(code, test):
import doctest
from doctest import DocTestRunner, DocTestParser
code = code + '\n__dtest=__parser.get_doctest(__test, globals(), "Crunchy Doctest", "crunchy", 0)\n__runner.run(__dtest)\n'
runner = DocTestRunner()
parser = DocTestParser()
exec code in {'__runner':runner, '__parser':parser, '__test':test}
或多或少地做到了,但這似乎並不理想,關於這兩個方面的建議
doctest
不限於測試功能。 例如,如果dt.py
為:
'''
>>> foo
23
'''
foo = 23
if __name__ == '__main__':
import doctest
doctest.testmod()
然后,例如:
$ py26 dt.py -v
Trying:
foo
Expecting:
23
ok
1 items passed all tests:
1 tests in __main__
1 tests in 1 items.
1 passed and 0 failed.
Test passed.
(在沒有-v
,效果也一樣好,但是沒有什么可顯示的:只是保持沉默;-)。 這是你在找什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.