2

Python doctestを各関数の本体に入れることができます。これは、関数と同じファイルにあるため、小さなライブラリでよく使用します。

または、それらをすべてまとめて別のファイルにまとめて、別のファイルを実行することもできます。これは、関数の間にdoctestが必要ない場合に便利です。docstringが小さいと、コードの作業が簡単になることがあります。

Python doctestを同じファイルに保持し、ファイルの最後にすべてまとめる方法もありますか?


編集:以下の受け入れられた答えに基づく解決策:

def hello_world():
  return u'Hello World'


def hello(name):
  return u'Hello %s' % name


def doctest_container():
  """
  >>> hello_world()
  u'Hello World'

  >>> hello(u'Guido')
  u'Hello Guido'
  """
  pass


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

実際、これは単純です。ダミー関数は、1つのdocstringにすべてのdoctestを含む最後の関数として作成されます。

4

2 に答える 2

2

次のように、ファイルの最後にあるdocstringにdoctestsを追加できます。

def myfunc():
    """This is a docstring without a doctest
    """
    pass

# ... some other code here

# Add docstrings for doctest:
myfunc.__doc__ += """
>>> myfunc()
>>> repr(myfunc())
None
"""
于 2012-03-19T12:37:24.213 に答える
1

doctestドキュメントの例が実装と同期していることをテストすることです。

多くのテストがある場合。コードとして記述された単体テストは、doctestベースのテストよりも保守が容易な場合があります。

モジュールの最後に、必要なdoctestを使用してテスト関数を追加し、テスト以外のコードのdocstringを汚染しないようにすることができます。

def test():
    """
    ..
    """
    import doctest
    doctest.testmod()

if __name__=="__main__": 
    test()  # if the module is called as a script then run tests
于 2012-03-19T14:08:13.427 に答える