首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python在主线上使用doctest

Python在主线上使用doctest
EN

Stack Overflow用户
提问于 2010-08-14 09:04:15
回答 1查看 641关注 0票数 0

您好,我想知道这是不是可能的,如果是的话,是怎么做的?从主线做doctest或类似的事情,而不是像doctest文档中描述的那样测试函数。

代码语言:javascript
复制
"""
>>> 
Hello World
"""

if __name__ == "__main__":
    print "Hello"
    import doctest
    doctest.testmod()

这是能够针对文档字符串测试学生脚本的一部分,我找到了这段代码,它允许我将两者都输入为strong

代码语言:javascript
复制
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}

这或多或少起到了作用,但似乎并不理想,这是对这两点的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-14 10:11:24

doctest并不局限于测试函数。例如,如果dt.py为:

代码语言:javascript
复制
'''
  >>> foo
  23
'''

foo = 23

if __name__ == '__main__':
    import doctest
    doctest.testmod()

然后,例如:

代码语言:javascript
复制
$ 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的情况下也能正常工作,但这样就没什么可展示的了:只有静默;-)。这就是你要找的吗?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3481561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档