pytest не может видеть логи тестируемой функции - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть такое приложение для колб

from flask import Flask
import logging

app = Flask(__name__)

@app.route('/')
def catch_all():
    logging.warning("I'm a warning")
    return "This is a REST API"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080, debug=True)

Когда я его запускаю, я вижу ПРЕДУПРЕЖДЕНИЕ в журналах

WARNING:root:I'm a warning

Затем я создаю тест, подобный этому

import fulfillment

def test_index():
    fulfillment.app.testing = True
    client = fulfillment.app.test_client()

    r = client.get('/')
    assert r.status_code == 200
    assert 'This is a REST API' in r.data.decode('utf-8')

Когда я запускаю тест с использованием pytest, я не вижу сообщения журнала из моей тестируемой функции.Я обнаружил Как я могу увидеть нормальный вывод на печать, созданный во время запуска Pytest? , который звучит похоже, но опция pytest -s не работает, и я думаю, что на самом деле речь идет о выводе из тестовой функции, а нетестируемая функция.

Как просмотреть журналы тестируемой функции?

1 Ответ

0 голосов
/ 21 декабря 2018

Это может быть .Просто создайте pytest.ini с настройками.

[pytest]
log_cli=true
log_level=NOTSET

Работает нормально:

pytest test_my.py
# ...
-------------------------------- live log call ---------------------------------
fulfillment.py                  37 WARNING  I'm a warning
PASSED                                                                   [100%]

=========================== 1 passed in 0.09 seconds ===========================

Также вы можете установить log_format, log_date_format и другие параметры.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...