Doctestで実行されているかどうかを(Python 2.7)コードで認識させるにはどうすればよいですか?doctestでコードが実行されているかどうかを調べる方法は?
次のようなシナリオがある:私は、print()
のいくつかの出力引数として渡されたファイル記述子にすることを、このような機能を持っている:
from __future__ import print_function
def printing_func(inarg, file=sys.stdout):
# (do some stuff...)
print(result, file=file)
をしかし、私はdoctestの中でprinting_func()
を使用しようとすると、 、テストは失敗します。 print()
を呼び出すときにキーワード引数file
が指定されているため、doctestモジュールによってデフォルトの出力リダイレクトが設定されているのではなく、実際に出力はsys.stdout
になります。
それはprint()
を呼び出すときfile
キーワード引数を渡すことがない知っているように、どのように私は、それはdoctestの内部で実行されているかどうかprinting_func()
に認識させることができますか?
これは、あなたがdoctestの中にいるかどうかを判断しようとするよりはるかに良い計画です。 –
私はRaymondに同意します。システムにコードを追加してテストされているかどうかをチェックし、それが異なる動作をするという考えは、テスト方法には絶対に理想的ではありません。 – Ben
私は一般的に同意しますが、テストインフラストラクチャをサポートするためにのみ行うのであれば有害ではないと思います。 – mshroyer