Есть ли способ изменить объект конфигурации pytest из обычного ключевого слова?

Я хочу распечатать, войти и сделать отчет в моей структуре pytest.

Я создаю объект конфигурации в pytest_configure следующим образом

conftest.py

def pytest_configure(config):
    config.logs = []

Затем я создаю приспособление для изменения этого объекта

@pytest.fixture(scope="function", autouse=True)
def print_info(request):
    return request.config.logs

В тестовом файле я вызываю этот прибор для изменения объекта

test_logs.py

def test_dummy(print_info):
    print_info.append("I am in test_dummy")

Я хочу изменить объект конфигурации, не передавая этот объект в тестовом примере. Например я хочу сделать следующее

from conftest import print_log
def test_dummy():
    print_log("I am in test_dummy")

и в conftest.py мы можем определить эту функцию для изменения объекта конфигурации

conftest.py

def print_log(message):
    #function to modify config object

1 ответ

Не поможет ли здесь модуль регистрации?

Вы можете настроить запись журнала так, чтобы она содержала именно ту информацию, которую вы хотите, например, модуль и тестовую функцию, в которой было зарегистрировано сообщение.

В журнале есть отличные функции, такие как фильтрация по уровню журнала, содержимому сообщения, запись различных записей в отдельные файлы журнала с различными текстовыми форматами и т. Д.

Я бы посоветовал вам взглянуть на: https://docs.pytest.org/en/latest/logging.html

Другие вопросы по тегам