#pytest
#pytest
Вопрос:
Я хотел бы добавить пользовательские атрибуты (или ключевые слова) к тесту, к которому я могу получить доступ во время pytest_runtest_logreport
.
Что я делаю в настоящее время, так это устанавливаю подобный маркер @pytest.mark.TESTID(98157)
для тестов, а затем использую это в pytest_runtest_logreport
as report.keywords['TESTID']
, который возвращает кортеж длиной 1, имеющий значение 98157. Пока все хорошо. Но когда я попытался добавить другой маркер с идентификатором дефекта, подобным этому @pytest.mark.JIRA("MyJIRA-124")
this report.keywords['JIRA']
, это дало мне целое число 1.
Итак, мой вопрос в том, можем ли мы не создавать параметризованный маркер с string
параметрами
И
Если это так, то это может быть вероятным обходным путем для меня.
Ответ №1:
К сожалению, в «отчете» не будет этого хранилища по умолчанию, поскольку это всего лишь dict с 1 в качестве значений для каждого ключа (исходный код)
Я думаю, что самым простым решением было бы изменить способ построения «отчета» с помощью pytest_runtest_makereport
hook. Это может быть так просто, как это:
from _pytest.runner import pytest_runtest_makereport as _makereport
def pytest_runtest_makereport(item, call):
report = _makereport(item, call)
report.keywords = dict(item.keywords)
return report
Затем в pytest_runtest_logreport
, под report.keyword['JIRA']
вы найдете MarkInfo
object
Комментарии:
1. Бинго!! , Это то, что я искал, На самом деле я делал то же самое
TESTID
давным-давно, но как-то я забыл, что я забыл этот шаг дляJIRA