如何在具有自定义日志级别的代码上运行鼻子测试?

时间:2019-02-18 23:38:29

标签: python logging nose

在我们的代码中,我们添加了一个自定义日志级别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的问题,但这似乎是一个非常糟糕的解决方案。

有更好的解决方案吗?据我所知,测试应该独立于日志配置而通过或失败。

0 个答案:

没有答案