feat: show step docstrings in pytest-html report Test column

Добавлен хук pytest_runtest_makereport в tests/conftest.py.
Заменяет технический nodeid (путь к файлу::класс::метод[chromium])
на первую строку docstring тестового метода.

Результат в отчёте:
  До:  tests/01_vetdept/BP01_navigation/test_bp01_navigation.py::TestBP01Navigation::test_s01_open_dashboard[chromium]
  После: Шаг 1: Открыть главную страницу (Dashboard)

Правило: что написано в docstring метода — то отображается в отчёте.
This commit is contained in:
VolandSZ
2026-09-01 21:11:52 +03:00
parent e718bf48d4
commit 02176b5ccd

View File

@ -108,4 +108,26 @@ def role_page(page: Page, request):
role = _get_role(request)
_login(page, role)
yield page
page.context.clear_cookies()
page.context.clear_cookies()
# ---------------------------------------------------------------------------
# Хук для отображения читаемых имён шагов в pytest-html отчёте
# ---------------------------------------------------------------------------
@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport(item, call):
"""
Заменяет технический путь к тесту в колонке Test отчёта pytest-html
на docstring метода (например, 'Шаг 1: Открыть главную страницу').
Если docstring отсутствует — оставляет оригинальный nodeid.
"""
outcome = yield
report = outcome.get_result()
# Берём docstring тестовой функции
doc = getattr(item.function, "__doc__", None)
if doc:
description = doc.strip().splitlines()[0] # только первая строка
report.nodeid = description