簡體   English   中英

Python在主線上使用doctest

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM