首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Structlog和测井模块不使用pytest记录

Structlog和测井模块不使用pytest记录
EN

Stack Overflow用户
提问于 2022-11-09 10:32:05
回答 1查看 35关注 0票数 0

因此,我有一个测试文件夹结构(测试模块src,这里没有显示),如下所示:

代码语言:javascript
复制
├── tests
│   ├── __init__.py
│   ├── conftest.py
│   ├── test_main.py

并让__init__.py配置我的日志记录,如下所示:

代码语言:javascript
复制
import structlog, logging, sys
from structlog.testing import LogCapture

logging.basicConfig(filename="test.log", filemode="w")

structlog.configure(
    processors=[LogCapture()],
    context_class=structlog.threadlocal.wrap_dict(dict),
    logger_factory=structlog.stdlib.LoggerFactory(),
    cache_logger_on_first_use=True
)

我的test_main.py如图所示:

代码语言:javascript
复制
import logging, structlog, pytest

from src.factories.factories import MyFactory
import src.main
from pathlib import Path
from datetime import datetime

@pytest.mark.parametrize(
    "factory",
    [
        MyFactory(),
    ],
)
def test_main(path_to_results_folder_fixture_in_conftest, factory):
    structlog.get_logger().info("test")
    no_of_files_function = lambda: sum(1 for _ in Path(path_to_results_folder_fixture_in_conftest).iterdir())
    len_before = no_of_files_function()
    src.main.main("sony", factory, path_to_results_folder)
    assert no_of_files_function() == len_before + 1

然后我只运行pytest test_main.py。我原以为行structlog.get_logger().info("test")会在test.log中生成行test。但是,只生成了一个空的test.log。我做错了什么?我已经配置了日志记录,但是structlog似乎看不到它。有关更多信息,也没有输出到stdout/控制台。

EN

回答 1

Stack Overflow用户

发布于 2022-11-10 06:14:44

如果您将structlog配置为使用LogCapture,则它捕获日志条目而不是打印它们--这就是它的全部目的。另见https://www.structlog.org/en/latest/testing.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74373394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档