2012-04-09 15 views
10

私はdoctestモジュールを使ってPythonでテストを始めようとしています。現時点ではPython:モジュール内にdoctestを持つ特定の関数だけをテストすることは可能ですか?

  1. 機能のテストを書いてください。
  2. は、機能コードを実装します。
  3. テストに合格すれば、より多くのテストとコードを書いてください。
  4. 機能が完了すると、実装する次の機能に移動します。私はdoctestのことで、巨大な出力を得る多くのテストと同じモジュール内の3または4(独立した)関数の後にそう

。そしてそれは少し煩わしいことです。

それだけ無印の機能を実行されるように、「機能a()b()c()をテストしていない」のdoctestを伝える方法はありますか?

私はdoctest.SKIPという旗しか見つかりませんでしたが、私のニーズには不十分です。私はこの旗を多くの行に置く必要があります。そして、私は再びマーク機能をチェックしたいならば、私はコードを手動で行って、私は内側に設定されたすべてのフラグを削除する必要があります...

私は:-) ...あなたは私が何を意味するか理解してほしいです

提案がありますか?

+0

Doctestはいくつかの迅速で汚れたテストでは悪くないが、より高度なテストライブラリを調べることを強くお勧めします。 Pythonの 'unittest'モジュールは、実際には非常に優れています。 (http://docs.python.org/library/unittest.html) – Wilduck

+0

@Wildluck:私はピュータンについて知っています。unittest、ありがとう。しかし、私が今必要としているのは、迅速かつ汚れたテストです。 :-) – Aufwind

答えて

13

looks likeあなたはrun_docstring_examplesに関数を渡すことができます。

def f(a, b, c): 
    ''' 
    >>> f(1,2,3) 
    42 
    ''' 

if __name__ == '__main__': 
    import doctest 
# doctest.testmod() 
    doctest.run_docstring_examples(f, globals()) 

example

では、Google経由で発見しました。

+1

これは機能しませんでしたか? –

+0

それは働いた、ありがとう。遅く応答して申し訳ありません!私は 'doctest.testmod(verbose = True)'の夏休みを見逃しています。ここでは* 18が渡され、0が失敗したようなことが分かります*。それ以外は、私が探していたもののようなものです。 :-) – Aufwind

+0

そして、replからこれをやって、ソースファイルを変更しないのはどうですか? – Chris

関連する問題