为来自python日志模块的日志记录器配置处理程序的插件。

pytest-logger的Python项目详细描述


Pypi Package VersionSupported Python VersionsDocumentation StatusCoverage StatusTravis-CI Build StatusAppVeyor-CI Build Status

pytest logger是一个pytest插件,为python日志模块中的日志记录器配置处理程序。

您可以通过pipPyPI

安装pytest记录器
$ [sudo] pip install pytest-logger

插件根据每个记录器将日志放到:

  • 标准输出,
  • pytest的tmpdir_factorysession目录下的日志特定目录中的文件。

您可以使用钩子设置插件:

#conftest.py
import os

def pytest_logger_config(logger_config):
    logger_config.add_loggers(['foo', 'bar', 'baz'], stdout_level='info')
    logger_config.set_log_option_default('foo,bar')

def pytest_logger_logdirlink(config):
    return os.path.join(os.path.dirname(__file__), 'mylogs')

进行日志记录测试或库(包括设备):

#test_something.py
import pytest
import logging

foo = logging.getLogger('foo')
bar = logging.getLogger('bar')
baz = logging.getLogger('baz')

@pytest.yield_fixture(scope='session')
def session_thing():
    foo.debug('constructing session thing')
    yield
    foo.debug('destroying session thing')

@pytest.yield_fixture
def testcase_thing():
    foo.debug('constructing testcase thing')
    yield
    foo.debug('destroying testcase thing')

def test_one(session_thing, testcase_thing):
    foo.info('one executes')
    bar.warning('this test does nothing aside from logging')
    baz.info('extra log, rarely read')

def test_two(session_thing, testcase_thing):
    foo.info('two executes')
    bar.warning('neither does this')
    baz.info('extra log, not enabled by default')

并期望终端输出(如果未捕获):

$ py.test -s -v
(...)
test_something.py::test_one
00:00.002 inf foo: one executes
00:00.002 wrn bar: this test does nothing aside from logging
PASSED

test_something.py::test_two
00:00.000 inf foo: two executes
00:00.000 wrn bar: neither does this
PASSED

能够通过命令行选项更改此输出:

$ pytest -s -v --log foo.debug,baz
(...)
test_something.py::test_one
00:00.002 dbg foo: constructing session thing
00:00.002 dbg foo: constructing testcase thing
00:00.002 inf foo: one executes
00:00.003 inf baz: extra log, rarely read
PASSED

test_something.py::test_two
00:00.000 dbg foo: constructing testcase thing
00:00.000 inf foo: two executes
00:00.001 inf baz: extra log, not enabled by default
PASSED

和-相同-在文件系统中:

$ file mylogs
mylogs: symbolic link to `/tmp/pytest-of-aurzenligl/pytest-48/logs'

$ tree mylogs
mylogs
`-- test_something.py
    |-- test_one
    |   |-- bar
    |   |-- baz
    |   `-- foo
    `-- test_two
        |-- bar
        |-- baz
        `-- foo

Pytest Logger根据MIT许可证的条款发布,是免费的开源软件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓 java。lang.IllegalStateException游标   java同时缩放和旋转纹理变换矩阵   访问HSQLDB数据库时发生java NullPointerException   java Vert。x项目如何构建包含所有其他垂直项的jar   java通过JNI从小程序调用DLL   hadoop当metastore是mysql时,如何在java中使用jdbc执行hql   spring如何在java graphQl中设置http状态   swing如何让Java小程序显示卡图像?   java iText内存管理PdfReader/水印加载过多   java以实用方式或通过xml创建x个spring批处理作业   部署在信号量上运行java应用程序   在哪里可以找到Java中与Go的EncryptRSOAEP()功能等效的功能?   在Java公式中四舍五入到十是没有意义的   使用JVisualVM进行java JVM远程评测   java创建API jar就像Android使用存根方法一样?   java计算人口密度:初学者指南   socket在JAVA中将单线程服务器转换为多线程服务器   java如何在没有主键的情况下对表或视图进行hibernate映射