Доступ к сессии или аргументам pytest в pytest_runtest_logreport - PullRequest
0 голосов
/ 16 февраля 2019

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

1 Ответ

0 голосов
/ 16 февраля 2019

Вы не можете получить сеанс из стандартного объекта TestReport.Однако вы можете ввести пользовательскую оболочку вокруг хука pytest_runtest_makereport (тот, который создает объект отчета), где вы можете присоединить сеанс самостоятельно.Пример:

import pytest


@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport(item, call):
    out = yield
    report = out.get_result()
    report.session = item.session


def pytest_runtest_logreport(report):
    print(report.session)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...