我在项目中有以下结构:
app/
__init__.py
main.py
tests/
__init__.py
test_a.py
test_b.py
我想在tests
包下初始化测试的日志记录。我将初始化代码放在app/tests/__init__.py
中,假设它在运行任何测试之前运行,但我发现情况并非如此。
如何在以下场景中运行此初始化代码?
python test_a.py
时
test_a.py
作为单元测试时
答案 0 :(得分:0)
您可以将记录器配置文件用于正常运行和测试,这是使用不同配置的最安全方式。
“解决方法”方式是重新创建记录器。您可能刚刚在__init__.py中添加了新的记录器?配置完成后,日志记录会保持配置,并且只允许扩展。 但是,您可以尝试重新创建整个记录器,如下所述: Python logging before you run logging.basicConfig? e.g:
root = logging.getLogger()
if root.handlers:
for handler in root.handlers:
root.removeHandler(handler)
# now create your test config
logging.basicConfig(format='%(asctime)s %(message)s',level=logging.DEBUG)
将此代码添加到test.py文件中,或将其添加到__init__.py中,但您可能需要:
from tests import *
使其在测试中执行。