Я думаю, что ваш лучший подход - написать собственный плагин . Таким образом, вы позволяете носу делать всю работу за вас. Похоже, что вы хотите сделать, это удалить debug-log
после того, как все тесты были выполнены. Для этого вам понадобится плагин, который реализует метод finalize (). В этом примере я также реализовал options (), чтобы плагин можно было включить / отключить и настроить (), чтобы найти местоположение журнала отладки. Ознакомьтесь с полным списком методов здесь .
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)
Как только вы напишите свой плагин, вам нужно будет зарегистрировать его с носом и включить его во время выполнения. инструкции для этого здесь . Вы также можете поиграть с атрибутом score
, чтобы убедиться, что ваш плагин запущен последним.