繁体   English   中英

打包__init__进行测试

[英]Package __init__ for a test

我在项目中有以下结构:

app/
    __init__.py
    main.py
    tests/
        __init__.py
        test_a.py
        test_b.py

我想在tests包下初始化测试的日志记录。 我将初始化代码放在app/tests/__init__.py ,假设它在任何测试运行之前运行,但我发现情况并非如此。

如何在以下场景中运行此初始化代码?

  • 从命令提示符运行python test_a.py
  • 在eclipse \\ aptana \\ pycharm下运行test_a.py作为单元测试时
  • 在eclipse \\ aptana \\ pycharm下运行整个测试套件时

您可以将记录器配置文件用于正常运行和测试,这是使用不同配置的最安全方式。

“解决方法”方式是重新创建记录器。 您可能刚刚在__init__.py中添加了新的记录器? 配置完成后,日志记录会保持配置,并且只允许扩展。 但是,您可以尝试重新创建整个记录器,如下所述: 运行logging.basicConfig之前的Python日志记录? 例如:

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 *

使它在测试中执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM