あなたの最善のアプローチは、カスタム プラグインを作成することだと思います。そうすれば、鼻に仕事を任せることができます。あなたがしたいことはdebug-log
、すべてのテストが実行された後に削除することです。これを行うには、finalize() メソッドを実装するプラグインが必要です。この例では、プラグインを有効/無効にできるように options() と、デバッグ ログの場所を見つけるために configure() も実装しました。 ここでメソッドの完全なリストを確認してください。
from nose.plugins import Plugin
import os
class AutoDeleteDebugLog(Plugin):
"""
Automatically deletes the error log after test execution. This may not be
wise, so think carefully.
"""
def options(self, parser, env):
"Register commandline options using Nose plugin API."
parser.add_option('--with-autodeletedebuglog', action='store_true',
help='Delete the debug log file after execution.')
self.debuglog = None
def configure(self, options, conf):
"Register commandline options using Nose plugin API."
self.enabled = options.autodeletedebuglog
self.debuglog = options.debugLog
def finalize(self, result):
"Delete debug log file after all results are printed."
if os.path.isfile(self.debuglog):
os.remove(self.debuglog)
プラグインを作成したら、nose に登録し、実行時に有効にする必要があります。そのための手順がここにあります。score
プラグインが最後に実行されるようにするために、属性をいじることもできます。