Есть ли способ изменить объект конфигурации 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