您好我想知道是否有可能,如果可能,怎么样?从主线做doctests或类似的东西,而不是像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}
或许更多或更少,但似乎不太理想,建议任何一点
答案 0 :(得分:2)
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
的情况下也能正常工作,但是没有太多要表现出来:只是沉默;-)。这是你在找什么?