0

こんにちは私はそれが可能かどうか疑問に思っていました、もしそうならどうやって?doctest docsで説明されているように関数をテストする代わりに、メインラインからdoctestまたは同様のことを行うため。

"""
>>> 
Hello World
"""

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

これは、学生のスクリプトをdocstringに対してテストできることの一部です。私は、両方を強みとして入力できるこのコードのスニペットを見つけました。

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}

それは多かれ少なかれ行いますが、それはほとんど理想的ではないようです、どちらかの点での提案

4

1 に答える 1

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が、表示するものはあまりありません。ただ沈黙します;-)。これはあなたが探しているものですか?

于 2010-08-14T02:11:23.543 に答える