在我们的代码中,我们添加了一个自定义日志级别TRACE:
def add_trace_log_level():
logging.addLevelName(TRACE_LOG_LEVEL, "TRACE")
def trace(self, message, *args, **kws):
if self.isEnabledFor(TRACE_LOG_LEVEL):
# Yes, logger takes its '*args' as 'args'.
self._log(TRACE_LOG_LEVEL, message, args, **kws)
logging.Logger.trace = trace
,在代码中,我们将其用作:
logger.trace("....")
使用鼻子测试测试单个功能时,如果在测试开始时未调用add_trace_log_level
,则测试将失败。
这是预期的,因为未定义logger.trace
。我们解决了在每次测试开始时购买调用add_trace_log_level
的问题,但这似乎是一个非常糟糕的解决方案。
有更好的解决方案吗?据我所知,测试应该独立于日志配置而通过或失败。