Я хотел бы создать отдельный файл журнала для каждого тестового метода. И я хотел бы сделать это в файле conftest.py и передать экземпляр журнала для метода тестирования. Таким образом, всякий раз, когда я регистрирую что-то в методе тестирования, он записывается в отдельный файл журнала и будет очень легко анализироваться.pytest, реализующий файл журнала для каждого метода тестирования
Я пробовал следующее. Внутри conftest.py файла я добавил следующее:
logs_dir = pkg_resources.resource_filename("test_results", "logs")
def pytest_runtest_setup(item):
test_method_name = item.name
testpath = item.parent.name.strip('.py')
path = '%s/%s' % (logs_dir, testpath)
if not os.path.exists(path):
os.makedirs(path)
log = logger.make_logger(test_method_name, path) # Make logger takes care of creating the logfile and returns the python logging object.
Проблема здесь состоит в том, что pytest_runtest_setup не имеет возможности вернуть что-либо метода испытаний. По крайней мере, я не знаю об этом.
Итак, я подумал о создании метода fixture внутри файла conftest.py с помощью функции scope = "function" и вызывать это приспособление из методов тестирования. Но метод fixture не знает об объекте Pytest.Item. В случае метода pytest_runtest_setup он получает параметр item и используя это, мы можем узнать имя метода тестирования и путь метода тестирования.
Пожалуйста, помогите!