我正在使用一个简单的基于单元测试的测试运行器来测试我的Django应用程序。
我的应用程序本身被配置为在settings.py中使用一个基本的日志记录器:
logging.basicConfig(level=logging.DEBUG)
并在我的应用程序代码使用:
logger = logging.getLogger(__name__)
logger.setLevel(getattr(settings, 'LOG_LEVEL', logging.DEBUG))
但是,在运行单元测试时,我想禁用日志记录,这样它就不会使测试结果输出混乱。有没有一种简单的方法以全局方式关闭日志记录,这样当我运行测试时,特定于应用程序的日志记录器就不会把东西写到控制台了?
有时你想要日志,有时不想要。我在settings。py中有这段代码
import sys
if '--no-logs' in sys.argv:
print('> Disabling logging levels of CRITICAL and below.')
sys.argv.remove('--no-logs')
logging.disable(logging.CRITICAL)
所以如果你使用——no-logs选项运行测试,你将只得到关键日志:
$ python ./manage.py tests --no-logs
> Disabling logging levels of CRITICAL and below.
如果您想加快持续集成流的测试,这是非常有用的。
有时你想要日志,有时不想要。我在settings。py中有这段代码
import sys
if '--no-logs' in sys.argv:
print('> Disabling logging levels of CRITICAL and below.')
sys.argv.remove('--no-logs')
logging.disable(logging.CRITICAL)
所以如果你使用——no-logs选项运行测试,你将只得到关键日志:
$ python ./manage.py tests --no-logs
> Disabling logging levels of CRITICAL and below.
如果您想加快持续集成流的测试,这是非常有用的。