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:
@ -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
|
||||
Reference in New Issue
Block a user